본문 바로가기

백준3

백준 - RGB 거리, python n = int(input()) d = [] for i in range(n): d.append( list(map(int, input().split())) ) for i in range(len(d)): if i == 0: continue d[i][0] = min(d[i-1][1], d[i-1][2]) + d[i][0] d[i][1] = min(d[i-1][0], d[i-1][2]) + d[i][1] d[i][2] = min(d[i-1][0], d[i-1][1]) + d[i][2] print(min( d[len(d)-1][0], d[len(d)-1][1], d[len(d)-1][2] )) 모든 경우의 수를 다 구해서 최솟값을 리턴. min d[i][0] = min(d[i-1][1], d[i-1][2]) + d.. 2020. 9. 7.
백준 - 1로 만들기, DP / python3 www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 최소값 d[i] = d[i // 2] + 1 d[i] = d[i // 3] + 1 d[i] = 1 + d[i - 1] n = int(input()) d = [0] * (n + 1) for i in range(n + 1): if i == 1: d[i] = 0 continue d[i] = d[i - 1] + 1 if i % 3 == 0 and d[i//3] + 1 < d[i]: d[i] = d[i//3] + 1 if i % 2 == 0 and d[i//2] + 1 < d[i]: d[i] = d[i//2] + 1 print(d[n.. 2020. 9. 6.
백준 - 설탕 배달, 다이나믹 프로그래밍 python3 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그�� www.acmicpc.net n = int(input()) d = [5001] * 5001 d[3], d[5] = 1, 1 sugar = [3, 5] if n > 5: for i in sugar: for j in range(6, n + 1): if d[j - i] != 5001: d[j] = min(d[j], d[j - i] + 1) print(d) if d[n] == 5001: print(-1) else: print(d[n]) 2020. 9. 6.