STUDYING/Algorithm

[BOJ] 11058 : 크리보드

EOZIN 2019. 2. 9. 15:35
728x90

문제


[BOJ] 11058 : 크리보드



풀이


memo[1] ~memo[6] 까지는 n의 개수로 출력됨.

for문을 7부터 돌리면서


memo[i] = memo[i-3]*2,

memo[i] = memo[i-4]*3,

memo[i] = memo[i-5]*4

중 가장 큰 수 출력.




코드



#include <stdio.h>
#include <algorithm>
using namespace std;
long long memo[101];
int main(){
long long n;
scanf("%ld", &n);

for (int i = 1; i <= 6; ++i) {
memo[i] = i;
}
for (int i = 7; i <= n ; ++i) {
memo[i] = memo[i-3] * 2;
memo[i] = max(memo[i], memo[i-5]*4);
memo[i] = max(memo[i], memo[i-4]*3);
}

printf("%ld", memo[n]);

return 0;
}