[백준 알고리즘] 1463번: 1로 만들기 (Python / 파이썬)

2024. 2. 28. 22:37·알고리즘/백준
문제 링크
 

1463번: 1로 만들기

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

www.acmicpc.net

 

문제 접근

DP 테이블을 이용한다.

현재 자신(숫자)를 만들기 위해 필요했던 연산의 개수를 저장한다.

각 수 연산을 다 해주고, 이 연산을 거친 결과를 서로 비교해서 가장 최솟값을 DP 테이블에 순차적으로 저장한다.

 

정답 코드
import sys

X = int(sys.stdin.readline())

dp = [0] * (X + 1)

for i in range(2, X + 1):
    dp[i] = dp[i - 1] + 1
    if i % 2 == 0:
        dp[i] = min(dp[i], dp[i // 2] + 1)
    if i % 3 == 0:
        dp[i] = min(dp[i], dp[i // 3] + 1)

print(dp[X])
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준 알고리즘] 1865번: 웜홀 (Java / 자바)  (0) 2025.04.23
[백준 알고리즘] 9095번: 1, 2, 3 더하기 (Python / 파이썬)  (0) 2024.02.28
[백준 알고리즘] 1992번: 쿼드트리 (Python / 파이썬)  (0) 2024.02.19
[백준 알고리즘] 1926번: 그림 (Python / 파이썬)  (1) 2024.02.19
[백준 알고리즘] 16987번: 계란으로 계란치기 (Python / 파이썬)  (1) 2024.01.28
'알고리즘/백준' 카테고리의 다른 글
  • [백준 알고리즘] 1865번: 웜홀 (Java / 자바)
  • [백준 알고리즘] 9095번: 1, 2, 3 더하기 (Python / 파이썬)
  • [백준 알고리즘] 1992번: 쿼드트리 (Python / 파이썬)
  • [백준 알고리즘] 1926번: 그림 (Python / 파이썬)
gyujh
gyujh
개발 공부 블로그
  • gyujh
    규
    gyujh
  • 전체
    오늘
    어제
    • 분류 전체보기 (86)
      • Backend&DB (3)
      • CS (5)
        • 컴퓨터구조 (1)
        • 소프트웨어공학 (4)
      • JavaScript (2)
      • Git (2)
      • 알고리즘 (73)
        • 개념 (3)
        • 백준 (70)
      • Projects (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    런타임
    시간초과
    재귀
    숏코딩
    에러
    백준
    구현
    정렬
    딕셔너리
    풀이
    너비우선탐색
    문자열
    algorithm
    정답
    프로그래머스
    답안
    답
    알고리즘
    스택
    BOJ
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
gyujh
[백준 알고리즘] 1463번: 1로 만들기 (Python / 파이썬)
상단으로

티스토리툴바