-
[BOJ] 1463 : 1로 만들기STUDYING/Algorithm 2019. 2. 9. 14:01728x90
문제
memo[n] = memo[n-1] + 1,
memo[n] = memo[n/2] + 1,
memo[n] = memo[n/3] + 1
중 제일 작은 수!
코드
#include<iostream>
#include<algorithm>
using namespace std;
int memo[1000001], n;
int main() {
scanf("%d", &n);
memo[1] = 0;
for (int i = 2; i <= n; i++) {
memo[i] = memo[i - 1] + 1;
if (i % 2 == 0) {
memo[i] = min(memo[i / 2] + 1, memo[i]);
}
if (i % 3 == 0) {
memo[i] = min(memo[i / 3] + 1, memo[i]);;
}
}
printf("%d",memo[n]);
return 0;
}'STUDYING > Algorithm' 카테고리의 다른 글
[Programmers] 크레인 인형뽑기 (0) 2021.09.27 [BOJ] 11058 : 크리보드 (0) 2019.02.09 [BOJ] 11052 : 카드 구매하기 (0) 2018.11.22 [BOJ] 2965 : 캥거루 세마리 (0) 2018.11.22 [BOJ] 11726 11727 : 2xn 타일링/ 2xn 타일링 2 (0) 2018.11.20