-
[백준 1463번] 1로 만들기Coding Test/백준 2021. 1. 24. 03:15
# 문제
내 풀이
n = int(input()) INF = int(1e9) # 무한 값으로 10억 설정 # DP 테이블 생성 및 초기화 dp = [0] * 1000001 dp[1] = 0 # 바텀업 다이나믹 프로그래밍 진행 for i in range(2, n + 1): d3 = dp[i // 3] if i % 3 == 0 else INF # 3으로 나누는 경우 d2 = dp[i // 2] if i % 2 == 0 else INF # 2로 나누는 경우 dp[i] = min(d3, d2, dp[i - 1]) + 1 # 세 가지 연산 중 최소 연산 횟수인 경우를 택해, 연산 진행 및 테이블 값 갱신 # 결과 출력 print(dp[n])
'Coding Test > 백준' 카테고리의 다른 글
[백준 1181번] 단어 정렬 (0) 2021.01.27 [백준 10844번] 쉬운 계단 수 (0) 2021.01.25 [백준 2579번] 계단 오르기 (0) 2021.01.23 [백준 1149번] RGB거리 (0) 2021.01.22 [백준 9461번] 파도반 수열 (0) 2021.01.20