다시 또... 삼성 코딩테스트 준비할려고 문제를 풀기 시작했다. 이전에는 DP관련해서 문제를 많이 풀어보지 않았는데
이번에는 dfs bfs말고도 준비해볼려고 dp를 풀고있다.
이 문제는 처음에는 어떻게 풀어야지... 생각하다가 빡더킹의 강의를 듣고 쉽게 풀었다... 예제 수준의 문제지만 나에게는 아직 어렵다.
나는 숫자를 입력받을때마다 계산하는것이 효율적이라고 은연중에 생각하고 있었는데 미리 계산해서 다 정리해놓고 입력받을때마다 출력하는것이 효율적이라고 말한다.
#include <iostream>
using namespace std;
int dp[100];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int T;
cin >> T;
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;
for (int i = 4; i <= 11; i++) {
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
}
while (T--) {
int n;
cin >> n;
cout << dp[n] << endl;
}
return 0;
}
'Development > BOJ' 카테고리의 다른 글
[BOJ] 백준 1992번: 쿼드트리 C++ : 아주정은 (0) | 2020.10.27 |
---|---|
[BOJ] 백준 20055번: 컨베이어 벨트 위의 로봇 C++ : 아주정은 (0) | 2020.10.21 |
[BOJ] 백준 19237번 : 어른 상어 C++ : 아주정은 (0) | 2020.10.17 |
[BOJ] 백준 15683번 : 감시 C++ : 아주정은 (0) | 2020.10.17 |
[BOJ] 백준 19236번 : 청소년 상어 C++ : 아주정은 (0) | 2020.10.16 |