Skip to content

Latest commit

Β 

History

History
31 lines (26 loc) Β· 979 Bytes

Q1463.md

File metadata and controls

31 lines (26 loc) Β· 979 Bytes

Q1463

문제

μ •μˆ˜ X에 μ‚¬μš©ν•  수 μžˆλŠ” 연산은 λ‹€μŒκ³Ό 같이 μ„Έ 가지 이닀.

  • Xκ°€ 3으둜 λ‚˜λˆ„μ–΄ 떨어지면, 3으둜 λ‚˜λˆˆλ‹€.
  • Xκ°€ 2둜 λ‚˜λˆ„μ–΄ 떨어지면, 2둜 λ‚˜λˆˆλ‹€.
  • 1을 λΊ€λ‹€.

μ •μˆ˜ N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, μœ„μ™€ 같은 μ—°μ‚° μ„Έ 개λ₯Ό 적절히 μ‚¬μš©ν•΄μ„œ 1을 λ§Œλ“€λ €κ³  ν•œλ‹€. 연산을 μ‚¬μš©ν•˜λŠ” 횟수의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•˜μ‹œμ˜€.

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

int main()
{
    int x;
    cin >> x;
    int arr[1000005];
    arr[1] = 0;
    for(int i=2;i<=x; i++) {
        arr[i] = arr[i-1] + 1;
        if(i % 2 == 0) arr[i] = min(arr[i], arr[i/2] + 1);
        if(i % 3 == 0) arr[i] = min(arr[i], arr[i/3] + 1);
    }
    cout << arr[x];
    return 0;
}

점화식은 arr[i] = arr[i-1] + 1; 의 ν˜•νƒœμΈλ°, iκ°€ 2둜 λ‚˜λˆ„μ–΄μ§ˆ λ•Œμ™€ 3으둜 λ‚˜λˆ„μ–΄μ§ˆ λ•Œ, λ‚˜λˆˆ λͺ«μ— + 1 ν•œ κ°’κ³Ό μ›λž˜μ˜ μ ν™”μ‹μœΌλ‘œ κ΅¬ν•œ κ°’ 쀑 μ–΄λŠ 값이 μž‘μ€μ§€ κ²€μ‚¬ν•œλ‹€.