반응형
https://www.acmicpc.net/problem/1463
요약 )
- 1 이상 100,000 이하의 수를 입력한다
- 문제 보기에 주어진 3개의 연산을 적절하게 사용해서 1로 만들어준다
- 이 과정에서 사용한 연산의 최소 개수를 출력해 준다.
#include <iostream>
#include <algorithm>
using namespace std;
int make_one[1000001];
int main()
{
int x;
cin >> x;
for (int i = 2; i <= x; i++) {
make_one[i] = make_one[i - 1] + 1;
if (i % 2 == 0) {
make_one[i] = min(make_one[i], make_one[i / 2] + 1);
}
if (i % 3 == 0) {
make_one[i] = min(make_one[i], make_one[i / 3] + 1);
}
}
cout << make_one[x] << endl;
return 0;
}
'C++' 카테고리의 다른 글
(C++) [백준] 피자(Small) (0) | 2023.01.11 |
---|---|
(C++) [백준] 핸드폰 번호 궁합 (0) | 2023.01.10 |
(C++) [백준] 피보나치 비스무리한 수열 (2) | 2023.01.10 |
(C++) [백준] 한조서열정리하고옴ㅋ (0) | 2023.01.10 |
(C++) [백준] 전자레인지 (0) | 2023.01.10 |