https://www.acmicpc.net/problem/9095
시작하는 수를 설정해둔다.
가령 5를 만드는 경우는
1 + 4를 만드는 경우
2 + 3을 만드는 경우
3 + 2를 만드는 경우
이렇게 볼 수 있다.
arr[i] = 1,2,3을 사용해서 합 i를 만드는 방법의 수라고 한다면
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include<iostream> using namespace std; int arr[11]; //1,2,3을 적절히 더해서 i를 만드는 방법의 수 (순서 다르면 다른 경우로 봄) int main(void) { arr[1] = 1; arr[2] = 2; arr[3] = 4; for (int i = 4; i <= 10; i++) arr[i] = arr[i - 3] + arr[i - 2] + arr[i - 1]; int n; cin >> n; while (n--) { int val; cin >> val; cout << arr[val] << '\n'; } return 0; } | cs |
'알고리즘 문제 풀이 > 백준 온라인 저지' 카테고리의 다른 글
백준 2193번: 이친수 (C++) (0) | 2019.09.19 |
---|---|
백준 1003번: 피보나치 함수 (C++) (0) | 2019.09.19 |
백준 1600번: 말이 되고픈 원숭이 (C++) (0) | 2019.09.06 |
백준 5397번: 키로거 (C++) (0) | 2019.09.02 |
백준 1987번: 알파벳 (c++) (0) | 2019.09.01 |