본문 바로가기

Algorithm Problems

(212)
[백준/Python] 1408번: 24 문제 https://www.acmicpc.net/problem/1408 1408번: 24 도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는 www.acmicpc.net 문제 요약 도현이는 모든 사건을 정확하게 24시간이 지난 순간 해결하는 것으로 유명한 특수 요원이다. 도현이가 임무를 시작한 시각과 현재 시각이 주어졌을 때, 도현이에게 남은 시간을 출력한다. + 디지털 시계 형식으로 입력과 출력을 한다. 코드 # 임무 시작 시각 = 임무 종료 시각 # 현재 시간, 임무 시작 시각 입력 currentHour, currentMinute, curr..
[백준/Python] 1302번: 베스트셀러 문제 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 문제 요약 오늘 팔린 책의 제목을 팔린 만큼 입력 받고, 가장 많이 팔린 책의 제목을 출력한다. + 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다. 코드 N = int(input()) dic = {} # 딕셔너리의 Key값에 제목, Value값에 팔린 개수 저장 for _ in range(N): book = input() if book in dic...
[백준/Python] 14501번: 퇴사 문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 요약 상담원으로 일하고 있는 백준은 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날, 퇴사를 하기 위해서 남은 N일 동안 상담을 통해 낼 수 있는 최대 수익을 출력한다. 각각의 상담은 상담을 완료하는데 걸리는 시간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. + 상담을 하는 기간동안은 다른 상담을 할 수 없다. 코드 N = int(input()) schedule = [list(map(int, input().split())) for _ in range(N)] # 0일 ~ N - 1일 # schedule..
[백준/Python] 2×n 타일링 문제 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제 요약 2 × n 크기의 직사각형을 1 × 2, 2 × 1 타일로 채우는 방법의 수를 출력한다. 코드 n = int(input()) dp = [0] * (1001) # dp[i]는 i번째 칸까지 1*2, 2*1 타일로 채우는 방법의 수 dp[1] = 1 dp[2] = 2 for i in range(3, n + 1): dp[i] = (dp[i-1] + dp[i-2]) % 10007 print(dp[n]) 코드 ..
[백준/Python] 9095번: 1, 2, 3 더하기 문제 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 요약 정수 n을 입력 받고, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. (1 ≤ n ≤ 10) ex) 정수 4를 1, 2, 3의 합으로 나타내는 방법 1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 2 + 1 + 1 2 + 2 1 + 3 3 + 1 코드 T = int(input()) dp =[0] * (11) # dp[i]는 정수 i까지 1, 2, 3으로 나타낼 수 있는 방법의 수 dp[1] = 1 # 1 dp[2] = 2 # 1 + 1, 2 dp[3] ..
[백준/Python] 1149번: RGB거리 문제 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 요약 RGB거리에 집이 N개 있다. (거리는 선분으로 나타낼 수 있다.) 모든 집들을 빨강, 초록, 파랑 중 하나의 색으로 칠해야한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 출력한다. 규칙 1. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. 규칙 2. N번 집은 N-1번 집의 색과 ..