목록CodingTest/Python (74)
기록방
👉 문제링크 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 🔸 문제 분석 🔸 규칙에 따라 계단을 오르며 값의 총합이 최대가 되도록 한다. 규칙1. 계단은 1칸 혹은 2칸(1칸 점프) 씩 오를 수 있다. 규칙2. 연속된 3개의 계단을 연속으로 밟을 수 없다. 규칙3. 마지막 계단은 반드시 밟아야 한다. DP 문제이고 마지막은 꼭 밟아야하기 때문에 거꾸로가는 점화식을 만들어본다. 마지막 계단의 인덱스가 n이면, 밟을 수 있는 종류는 2가지다 1) n과 n-1을 연속으로 밟는다 = n-2를 밟으면안된다 = n-3을 밟는다. ..
👉 문제링크 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 🔸 문제 분석 🔸 옷 이름과 종류를 입력받고, 입을 수 있는 의상 조합의 수를 구한다. 🔸 코드 🔸 for _ in range(int(input())): n = int(input()) weardict = {} for _ in range(n): wear = list(input().split()) if wear[1] in weardict: weardict[wea..
👉 문제링크 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 🔸 문제 분석 🔸 해시 맵 문제이다. 🔸 코드 🔸 import sys n, m = map(int, sys.stdin.readline().rstrip().split()) passwd = dict() for _ in range(n): i = sys.stdin.readline().rstrip().split() passwd[i[0]] = i[1] for _ in range(m): sys.stdout.write(passwd[sys..
👉 문제링크 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 🔸 문제 분석 🔸 걸리는 시간 숫자의 수와 숫자들의 리스트가 입력된다. 각 리스트 별 끝나는 시간들의 총합의 최소값을 출력한다. 문제 설명은 그리디 알고리즘 이지만, 정렬로 간단히 풀린다. 🔸 코드 🔸 import sys n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().rstrip().split())) arr.sort() sum_num = 0 for i in range(n): sum_num += sum(..
👉 문제링크 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, 동전 종류를 입력받는다. 동전을 최소로 사용하면서 k를 만든다. 🔸 코드 🔸 import sys n, k = map(int, sys.stdin.readline().split()) coin = [] for i in range(n): c = int(sys.stdin.readline()) if c = i: answer += k//i k..