목록전체 글 (271)
DHistory
문제 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 """ 1 = 1 2 = 2 3 = 1 + 2 2 + 1 3 4 = 1 + 2 + 1 (3을 만들 수 있는 경우 중 2개) 1 + 3 3 + 1 (1을 만들 수 있는 경우 중 1개) 5 = 1 + 3 + 1 2 + 1 + 2 3 + 2 2 + 3 6 = 2 + 1 + 2 + 1 2 + 3 + 1 3 + 2 + 1 1 + 2 + 1 + 2 1 + 3 + 2 3 + 1 + 2 1 + 2 + 3 2 + 1 + 3 """ import sys MOD = 1000000009 t = int(sys.stdin.read..
문제 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 import sys MOD = 1000000009 t = int(sys.stdin.readline().rstrip()) d = [0] * 1000001 result = [] def solution(n): if n
문제 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline().rstrip()) numbers = [0] + list(map(int, sys.stdin.readline().rstrip().split())) def solution(a): d = [1] * len(a) for i in range(1, n + 1): for j in range(1, i): if a[i] < a..
문제 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 풀이 n = int(input()) def solution(n): d = list(range(n + 1)) for i in range(1, n + 1): for j in range(int(i ** .5), 0, -1): if i == j * j: d[i] = 1 elif i > j * j: d[i] = min(d[i - j * j] + d[j * j], d[i]) return d[n] print(solution(n))..
문제 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 풀이 """ 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 5 1 1 6 15 15 6 1 1 7 21 30 21 7 1 """ n, k = map(int, input().split()) MOD = 10007 def solution(n, k): k = min(n - k, k) d = [[0] * (n + 1) for _ in range(n + 1)] d[0][0] = d[1][0] = d[1][1] = 1 for i in range(2, n + 1): for j in range(n + 1): d[i][j] =..