문제 : https://www.acmicpc.net/problem/9095
이 문제는 숫자 N을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 문제다.
import sys
input = sys.stdin.readline
T = int(input()) # 테스트 케이스의 개수
answer = [0]*(11) # 정답 리스트
answer[:4] = [0, 1, 2, 4] # 초기 정답 저장
# 정답 리스트 생성
for i in range(4, 11):
answer[i] = answer[i-1]+answer[i-2]+answer[i-3] # 다음 정답을 생성해 저장
# 정답 구
for N in range(T):
N = int(input()) # 값을 구할 N 입력받기
print(answer[N]) # 0과 1의 개수 print
[문제풀이]
이 문제를 풀기 위해선 우선 규칙을 찾아야 한다.

숫자 N의 경우의 수는 n-1, n-2, n-3의 경우의 수의 합이란 것을 알 수 있다.
arr[i] = arr[i-1] + arr[i-2] + arr[i-3]
이를 점화식으로 만들면 이렇게 되며, 이를 코드로 구현하기만 하면 끝난다.
'코딩테스트 > 백준' 카테고리의 다른 글
| [백준] 11726번 : 2×n 타일링 (Python) (2) | 2024.05.16 |
|---|---|
| [백준] 1309번 : 동물원 (Python) (1) | 2024.05.16 |
| [백준] 1149번 : RGB거리 (Python) (3) | 2024.05.16 |
| [백준] 1932번 : 정수 삼각형 (Python) (2) | 2024.05.16 |
| [백준] 1003번 : 피보나치 함수 (Python) (5) | 2024.05.16 |