1, 2, 3 더하기 성공
한국어
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 | 128 MB | 32173 | 20463 | 13914 | 61.980% |
문제
정수 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의 합으로 나타내는 방법의 수를 출력한다.
예제 입력 1 복사
3 4 7 10
예제 출력 1 복사
7 44 274
#include <iostream>
using namespace std;
void dp(int * arr, int max) {
for (int i = 3; i < max; i++) {
arr[i] = arr[i - 1] + arr[i - 2] + arr[i - 3];
}
}
int main(void) {
int R = 0;
int *arr = new int[11];
arr[0] = 1, arr[1] = 2, arr[2] = 4;
cin >> R;
dp(arr,11);
for (int i = 0; i < R; i++) {
int temp2;
cin >> temp2;
cout << arr[temp2-1] << endl;
}
return 0;
}
'백준 알고리즘' 카테고리의 다른 글
2667 : 단지번호붙이기 [DFS/BFS] (0) | 2019.11.21 |
---|---|
[백준/DP] 11726번: 2×n 타일링 (0) | 2019.08.15 |
[백준/DP] 1003번: 피보나치 함수 (0) | 2019.08.15 |
[백준/DP] 2579번: 계단 오르기 (0) | 2019.08.14 |