기록하는 습관

[백준] DP - 1로 만들기 본문

알고리즘/[문제풀이] 백준

[백준] DP - 1로 만들기

로그뉴 2020. 10. 3. 17:18

한동안 코테 스터디 하느라 블로그에 코딩 공부 글을 올리지 못했다.. (?모순)

코테 스터디 내용은 차차 올릴 예정이다.

이제 스터디도 끝나서 다시 혼자 공부해야 하는데 열심히 문제풀이 올리면서 꾸준히 공부해야지. :)

 

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

 

1463번: 1로 만들기

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

www.acmicpc.net

점화식 : d[a] = min ( d[a // 3] +1, d[a // 2] + 1 , d[a - 1] + 1 )

시간 복잡도 : O(N)

a = int(input())

d = [0] * (a + 1)
for x in range(2, a + 1):
    d[x] = d[x - 1] + 1
    if x % 2 == 0:
        d[x] = min(d[x], d[x // 2] + 1)
    if x % 3 == 0:
        d[x] = min(d[x], d[x // 3] + 1)

print(d[a])

 

'알고리즘 > [문제풀이] 백준' 카테고리의 다른 글

[백준] DP - RGB 거리  (0) 2020.10.03
[백준] DP - 계단 오르기  (0) 2020.10.03
[문제풀이] 경쟁적 전염  (0) 2020.08.22
[백준] 1697 숨바꼭질(BFS)  (0) 2020.01.21
[백준] 2178 미로탐색  (0) 2020.01.21
Comments