Algorithm

    [Python] 백준/BOJ - 2455번: 지능형 기차

    https://www.acmicpc.net/problem/2455 2455번: 지능형 기차 최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 문제 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있고, 이를 이용해 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 4개의 역에 대해 기차에서 내린 사람 수와 탄 사람 수가 주어졌을 때, 기차에 사람이 가장 많을 때의 사람 수를 계산하..

    [Python] 백준/BOJ - 2720번: 세탁소 사장 동혁

    https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다. 동혁이는 리암에게 실망했다. 리암은 거스름돈을 주는 것을 자꾸 실수한다. 심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다! 어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다. 거스름돈의 액수가 주어지면 리암이 줘..

    [Python] 백준/BOJ - 1541번: 잃어버린 괄호

    https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이..

    [Python] 파이썬의 정렬 함수(sort(), sorted())를 알아보자.

    파이썬으로 코딩테스트를 준비하며 잊고있던 파이썬 문법을 하나씩 찾아보는 중이다. 이번엔 sort()와 sorted() 함수에 대해서 알아보겠다. 일반적으로 파이썬으로 정렬을 할 때 sorted() 나 .sort() 를 사용한다. list.sort()는 파이썬 내장 메서드로, 리스트를 제자리에서 수정한다. 일반적으로 sorted() 보다 덜 편리하지만 원래 목록이 필요하지 않다면 이것이 약간 더 효율적이다. sorted()는 이터러블로부터 새로운 정렬된 리스트를 만드는 내장함수이다. (sort()는 리스트에게만 정의되지만, sorted() 함수는 모든 이터러블을 받아들인다.) 오름차순과 내림차순 a = [1, 10, 5, 7, 6] a.sort() # 오름차순 정렬 print(a) # [1, 5, 6, 7..

    [Python] 백준/BOJ - 1026번: 보물

    1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. ..

    [Python] 백준/BOJ - 11047번: 동전 0

    11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제 동전은 총 N종류이고, 그 동전을 사용해 그 합을 K로 만들려고 한다. 이 때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하라. 입력 첫째 줄: N, K(1

    [Python] 백준/BOJ - 1157번: 단어 공부

    1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램 작성하기. (대소문자 구분 X) 입력 알파벳 대소문자 단어. (단어 길이 < 1,000,000) 출력 가장 많이 사용된 알파벳을 대문자로 출력. 가장 많이 사용된 알파벳이 여러개라면 ?를 출력 예제 입력 1 Mississipi 예제 출력 1 ? 예제 입력 2 zZa 예제 출력 2 Z 예제 입력 3 z 예제 출력 3 Z 예제 입력 4 baaa 예제 출력 4 A 풀이 구현 문제들 중에서 정..

    [Python] 백준/BOJ - 8958번: OX퀴즈

    8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. 문제를 맞은 경우, 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. (예를 들어 "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점) 입력 첫 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄. 0 < 문자열 길이 < 80. 문자열은 O와 X로만. 출력 각 테스트..

    [Python] 백준/BOJ - 5885번: 거스름돈

    5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 문제 타로는 잡화점에서 물건을 산다. 잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 잡화점에서 물건을 계산할 때 1000엔 지폐를 한 장 냈을 때, 받을 잔돈의 개수를 구하시오. 입력 타로가 지불할 돈(구매할 상품의 가격)(1이상 1000미만의 정수) 출력 잔돈에 포함된 매수 예제 입력 1 380 예제 출력 1 4 예제 입력 2 1 예제 출력 2..

    [Python] 백준/BOJ - 11399번: ATM

    https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 N명의 사람들이 줄을 서있다. 이들은 1번~N번까지 번호가 매겨져 있고, i번 사람이 돈을 인출하는데 걸리는 시간은 p[i]분. 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하는 프로그램을 작성하라. 입력 첫째 줄: 사람의 수 N(1