11726
풀이 코드
#include <iostream> using namespace std; // 11726 int width; int solve(int currentWidth){ // 기저사례 : 현재 너비가 2이면 2가지 반환, 1 이면 1가지 반환 switch(currentWidth){ case 1 : return 1; break; case 2 : return 2; } int ret = 0; ret += solve(currentWidth - 1) + solve(currentWidth - 2); return ret; } int main(){ cin >> width; cout << solve(width) << endl; }

#include <iostream> using namespace std; // 11726 int main(){ int width; int tile[1001]; cin >> width; tile[1] = 1; tile[2] = 2; for (int i = 3; i <= width; i++) { tile[i] = (tile[i - 1] + tile[i - 2]) % 10007; } cout << tile[width] << endl; }
해설
피보나치 수열처럼 더해나가는 것이었습니다. 문제의 규칙을 찾는 과정만이 핵심이었고 코드 구현은 어렵지 않은 문제였습니다.

반응형