반응형
문제설명
정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.
- 1+1+1+1
- 1+1+2
- 1+2+1
- 2+1+1
- 2+2
- 1+3
- 3+1
정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다.
출력
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
전체코드(Python)
def case(n):
# 1,2,3일때 1,2,3으로 구할 수 있는 경우의 수를 미리 구해놓는다
num = [0,1,2,4]
# 4부터는 맨앞이 1이 오는 경우, 2가 오는경우, 3이 오는 경우 3가지 밖에 없으므로
# 4-1의 경우의수, 4-2의 경우의 수 4-3의 경우의 수를 모두 더한 수를 k를 구하는 경우의 수로 구한다.
for k in range(4,n+1):
num.append(num[k-1]+num[k-2]+num[k-3])
# 입력받은 숫자의 배열값을 반환한다.
return num[n]
n = int(input())
for i in range(n):
print(case(int(input())))
혹시라도 정정할 내용이나 추가적으로 필요하신 정보가 있다면 댓글 남겨주시면 감사하겠습니다.
오늘도 Jindory 블로그에 방문해주셔서 감사합니다.
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1260번 : DFS와 BFS(Python) (0) | 2022.03.11 |
---|---|
[백준] 1904번 : 01타일(Python) (0) | 2022.03.10 |
[백준] 1010번 : 다리놓기(Python) (0) | 2022.03.10 |
[백준] 1463번 : 1로 만들기(Python) (0) | 2022.03.09 |
[백준] 2839번 : 설탕배달(Python) (0) | 2022.03.09 |