https://www.acmicpc.net/problem/1463
1463๋ฒ: 1๋ก ๋ง๋ค๊ธฐ
์ฒซ์งธ ์ค์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 106๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์ N์ด ์ฃผ์ด์ง๋ค.
www.acmicpc.net
์ ์ N์ 1๋ก ๋ง๋ค๊ธฐ ์ํด์ ์ฌ์ฉํ ์ ์๋ ์ฐ์ฐ์ ๋ค์ ์ธ ๊ฐ์ง์ด๋ค. ํธ์์ ์ฐ์ฐ A, B, C๋ผ๊ณ ํ๊ฒ ๋ค
์ฐ์ฐA | N์ด 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ฉด, 3์ผ๋ก ๋๋๋ค. |
์ฐ์ฐB | N์ด 2๋ก ๋๋์ด ๋จ์ด์ง๋ฉด, 2๋ก ๋๋๋ค. |
์ฐ์ฐC | 1์ ๋บ๋ค. |
์ ์ N์ด 2์ธ ๊ฒฝ์ฐ
์ฐ์ฐA: ๋ถ๊ฐ๋ฅํ๋ค
์ฐ์ฐB: 2 / 1 = 1์ด๋ฏ๋ก 1์ด ๋ง๋ค์ด์ง๋ค. (์ฐ์ฐํ์:1)
์ฐ์ฐC: 2 - 1 = 1์ด๋ฏ๋ก 1์ด ๋ง๋ค์ด์ง๋ค. (์ฐ์ฐํ์:1)
์ต์ ์ฐ์ฐ ํ์๋ 1์ด๋ค.
์ ์ N์ด 3์ธ ๊ฒฝ์ฐ
์ฐ์ฐA: 3 / 1 = 1์ด๋ฏ๋ก 1์ด ๋ง๋ค์ด์ง๋ค. (์ฐ์ฐํ์:1)
์ฐ์ฐB: ๋ถ๊ฐ๋ฅํ๋ค
์ฐ์ฐC: 3 - 1 = 2 ์ด๋ค. 2๋ฅผ 1๋ก ๋ง๋๋ ์ต์์ฐ์ฐ์ ๋๋ค์ ์ํํด์ผ ํ๋๋ฐ, ์์์ ์ด๋ฏธ ํ๋ค. (์ฐ์ฐํ์:1+1=2)
์ต์ ์ฐ์ฐ ํ์๋ 1์ด๋ค.
์ ์ N์ด 4์ธ ๊ฒฝ์ฐ
์ฐ์ฐA: ๋ถ๊ฐ๋ฅํ๋ค
์ฐ์ฐB: 4 / 2 = 2์ด๋ค. 2๋ฅผ 1๋ก ๋ง๋๋ ์ต์์ฐ์ฐ์ ๋๋ค์ ์ํํด์ผ ํ๋๋ฐ, ์์์ ์ด๋ฏธ ํ๋ค. (์ฐ์ฐํ์:1+1=2)
์ฐ์ฐC: 4 - 1 = 3์ด๋ค. 3์ 1๋ก ๋ง๋๋ ์ต์์ฐ์ฐ์ ๋๋ค์ ์ํํด์ผ ํ๋๋ฐ, ์์์ ์ด๋ฏธ ํ๋ค. (์ฐ์ฐํ์:1+1=2)
์ต์ ์ฐ์ฐ ํ์๋ 2๋ค.
์ ์ N์ด 5์ธ ๊ฒฝ์ฐ
์ฐ์ฐA: ๋ถ๊ฐ๋ฅํ๋ค
์ฐ์ฐB: ๋ถ๊ฐ๋ฅํ๋ค
์ฐ์ฐC: 5 - 1 = 4์ด๋ค. 4๋ฅผ 1๋ก ๋ง๋๋ ์ต์์ฐ์ฐ์ ๋๋ค์ ์ํํด์ผ ํ๋๋ฐ, ์์์ ์ด๋ฏธ ํ๋ค. (์ฐ์ฐํ์:1+2=3)
์ต์ ์ฐ์ฐ ํ์๋ 3์ด๋ค.
์ ์ N์ด 6์ธ ๊ฒฝ์ฐ
์ฐ์ฐA: 6 / 3 = 2์ด๋ค. 2๋ฅผ 1๋ก ๋ง๋๋ ์ต์์ฐ์ฐ์ ๋๋ค์ ์ํํด์ผ ํ๋๋ฐ, ์์์ ์ด๋ฏธ ํ๋ค. (์ฐ์ฐํ์:1+1=2)
์ฐ์ฐB: 6 / 2 = 3์ด๋ค. 3์ 1๋ก ๋ง๋๋ ์ต์์ฐ์ฐ์ ๋๋ค์ ์ํํด์ผ ํ๋๋ฐ, ์์์ ์ด๋ฏธ ํ๋ค. (์ฐ์ฐํ์:1+1=2)
์ฐ์ฐC: 6 - 1 = 5์ด๋ค. 5๋ฅผ 1๋ก ๋ง๋๋ ์ต์์ฐ์ฐ์ ๋๋ค์ ์ํํด์ผ ํ๋๋ฐ, ์์์ ์ด๋ฏธ ํ๋ค. (์ฐ์ฐํ์:1+3=4)
์ ๋ฆฌํ๋ฉด,
์ฐ์ฐ์ ์ํํ ์ ์๋ ๊ฒฝ์ฐ,
์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ์ด 1์ด๋ผ๋ฉด, ์ฐ์ฐ ํ์ = 1
์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ์ด 1์ด ์๋๋ผ๋ฉด, ์ฐ์ฐ ํ์ = 1 + ๊ฒฐ๊ณผ๊ฐ์ ์ต์ ์ฐ์ฐ ํ์
์ฐ์ฐ ํ์ ์ค ์ต์๊ฐ์ด ์ ๋ต์ด๋ค.
๋ฐ๋ผ์ 2๋ถํฐ N๊น์ง์ ์ต์ ์ฐ์ฐ ํ์๋ฅผ ๋ฐฐ์ด์ ๋ชจ๋ ์ ์ฅํด ๋์๋ค๊ฐ, ํ์ํ ๊ฒฝ์ฐ ๊ทธ ๊ฐ์ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ฉด ๋๊ฒ ๋ค.
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> DP={0,0,1,1};
int n; cin >> n;
for(int i=4;i<n+1;i++) {
int result = DP[i-1]+1;
if(i%3==0) result= min(result,DP[i/3]+1);
if(i%2==0) result = min(result,DP[i/2]+1);
DP.push_back(result);
}
cout<<DP[n];
return 0;
}
DP[0], DP[1]์ ์์ธ๊ฑฐ๋๊น 0์ผ๋ก ์ด๊ธฐํ
DP[2], DP[3]์ ์ด์ฐจํผ 1์ธ๊ฑฐ ์๊ณ ์์ผ๋ 1๋ก ์ด๊ธฐํํด์ฃผ๊ณ ์์ํ๋ค
์ฐ์ฐC๋ ์ ์ N์ ๊ฐ์ ๊ด๊ณ ์์ด ํญ์ ์ํ ๊ฐ๋ฅํ๋ค
๋ฐ๋ผ์ DP[N]์ ์ฐ์ฐC ๊ฒฐ๊ณผ๋ฅผ ์ฐ์ ์ ์ฅํ๊ณ ,
์ฐ์ฐ A์ B๊ฐ ๊ฐ๋ฅํ๋ค๋ฉด ๊ทธ ๊ฒฐ๊ณผ๊ฐ์ด DP[N]๋ณด๋ค ์์ ๊ฒฝ์ฐ์๋ง DP[N]์ผ๋ก ๊ฐฑ์ ํด์ฃผ์๋ค.
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > DP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]1890๋ฒ: ์ ํ (0) | 2023.02.14 |
---|---|
[๋ฐฑ์ค]11048๋ฒ: ์ด๋ํ๊ธฐ (0) | 2023.02.12 |
[๋ฐฑ์ค]10844๋ฒ: ์ฌ์ด ๊ณ๋จ์ (0) | 2023.02.11 |
[๋ฐฑ์ค] 11057๋ฒ : ์ค๋ฅด๋ง ์ (0) | 2023.02.10 |
[๋ฐฑ์ค] 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ (0) | 2023.01.17 |