본문 바로가기
Algorithm/C++

[백준 1463] 1로 만들기

by imagineer_jinny 2022. 9. 28.

1463번: 1로 만들기 (acmicpc.net)

 

1463번: 1로 만들기

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.

www.acmicpc.net

 

배운 것

 

출처 : BaaaaaaaarkingDog | [실전 알고리즘] 0x10강 - 다이나믹 프로그래밍 (encrypted.gg)

 

 

정답 코드

#include <bits/stdc++.h>
using namespace std;

int d[1000005];
int n;

int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  d[1] = 0;
  for(int i = 2; i <= n; i++){
    d[i] = d[i-1]+1;
    if(i%2 == 0) d[i] = min(d[i],d[i/2]+1);
    if(i%3 == 0) d[i] = min(d[i],d[i/3]+1);
  }
  cout << d[n];
}

'Algorithm > C++' 카테고리의 다른 글

[백준 15657] N과 M (8)  (0) 2022.09.28
[백준 9095] 1,2,3 더하기  (0) 2022.09.28
[백준 5648] 역원소 정렬  (0) 2022.09.27
[백준 2146] 다리 만들기  (0) 2022.09.27
[백준 11652] 카드  (0) 2022.09.26

댓글