honey_pot

[Python] 1463번 : 1로 만들기 본문

문제 풀이

[Python] 1463번 : 1로 만들기

_tera_ 2022. 11. 17. 15:32

https://www.acmicpc.net/problem/1463


12852번과 유사한 문제 

12852는 과정도 출력하는 부분이 추가되었다는 부분 말고는 같다

1을 빼는 경우

2로 나누는 경우 + 2로 나누었을때 카운트가 더 적을때

3으로 나누는 경우 + 3으로 나누었을때 카운트가 더 적을때

dp[i] 값을 갱신한다

 

1
2
3
4
5
6
7
8
9
= int(input())
dp = [0]*(n+1)
for i in range(2,n+1):
    dp[i] = dp[i-1+ 1
    if i%3==0 and dp[i//3]+1 < dp[i]:
        dp[i] = dp[i//3]+1
    if i%2==0 and dp[i//2]+1 < dp[i]:
        dp[i] = dp[i//2]+1
print(dp[n])
cs

'문제 풀이' 카테고리의 다른 글

[python] 2885번:초콜릿 식사  (0) 2022.10.30
[Python] 1911번: 흙길 보수하기  (0) 2022.10.30
[python] 입국심사  (0) 2022.09.30
[python] 디스크 컨트롤러  (0) 2022.09.29
[Python] 가장 먼 노드  (0) 2022.09.28
Comments