차곡차곡

[모각코] 210821 Today I Learned 본문

HUFS/2021 HUFS 모각코 캠프

[모각코] 210821 Today I Learned

sohy 2021. 8. 22. 23:48

저번 문제 풀기 실패하고 결국 다른 문제 풀었다..^0^ 

 

9095번: 1, 2, 3 더하기 (acmicpc.net)

 

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

 

T = int(input())    # 테스트 케이스 개수
N = []  # 정수 n 저장

for i in range(T):
    N.append(int(input()))

C = [0 for i in range(max(N)+1)]  # n을 1, 2, 3의 합으로 나타내는 방법의 수

for i in range(1, max(N)+1):
    if i == 1:
        C[i] = 1
    elif i == 2:
        C[i] = 2
    elif i == 3:
        C[i] = 4
    else:
        C[i] = C[i-1] + C[i-2] + C[i-3]

for i in range(T):
    print(C[N[i]])

 

너무 쉬운 문제라 조금 민망하지만 ~

정수 n을 1, 2, 3의 합으로 나타내는 방법은 크게 1로 끝나는 경우, 2로 끝나는 경우, 3으로 끝나는 경우로 나눌 수 있다.

(i-1) + 1

(i-2) + 2

(i-3) + 3

리스트 C에 i를 1, 2, 3의 합으로 나타내는 방법의 수를 구해나간다. i가 방법의 수를 구하려는 정수 n이 되는 것이다. 1부터 테스트 케이스로 들어온 n의 최댓값까지 방법의 수를 구해, 테스트 케이스에 해당하는 정수의 방법의 수를 출력하기만 하면 끝이다!

Comments