백준 algorithm
백준 11727 - 2×n 타일링 2
cosmohoo
2019. 8. 31. 17:58
반응형
처음 풀어보는 문제라 많이 버벅거렸다.
30분이상 생각하다가 답이 안나와 구글링하여 답을 보고 내 방식대로 짜봤다.
참고로 vector로 풀어서 좋을건 하나도 없을 거 같다.
배열로만 풀어도 되는 문제다.
answer[i] = answer[i-1] + (answer[i-2]*2)
의 식만 적용하면 풀수 있는 간단한 문제다.
알고리즘 문제를 풀때는 항상 종이와 펜이 필수다.
#include <iostream>
#include <vector>
using namespace std;
int method(int n)
{
vector<int> answer;
answer.push_back(0);
answer.push_back(1);
answer.push_back(3);
if (n == 1)
{
return answer[1];
}
else if (n == 2)
{
return answer[2];
}
else
{
for (int i = 3; i <= n; i++)
{
int value = 0;
value = answer[i - 1] + (answer[i - 2] * 2);
answer.push_back(value%10007);
}
return answer[n] ;
}
}
int main()
{
int n;//2xn 크기의 직사각형
cin >> n;
method(n);
cout << method(n);
cout << endl;
return 0;
}반응형