[DP] 1로 만들기

2021. 12. 7. 23:18·알고리즘_코딩테스트/이것이 코딩테스트다

1. 문제 설명

- 주어진 수를 1로 만들기 위해 수행해야 하는 연산의 횟수를 구하는 문제

- 2, 3, 5를 나누는 연산이 존재

2. 코드

n = int(input())
df = [0]*(n+1)

for i in range(2, n+1):
    df[i] = df[i-1]+1
    if i%2==0:
        df[i] = min(df[i], df[i//2]+1)
    elif i%3==0:
        df[i] = min(df[i], df[i//3]+1)
    elif i%5==0:
        df[i] = min(df[i], df[i//5]+1)
print(df[n])

"""
6
>> 2
"""

3. 코멘트

- 코드는 간단했으나 횟수 추가 부분을 이해하는데 시간이 좀 걸렸었다.

- 문제 풀이 방식이 DP였다는 것을 생각해서 이해를 했던 것 같다. 

'알고리즘_코딩테스트 > 이것이 코딩테스트다' 카테고리의 다른 글

[DP] 바닥공사  (0) 2021.12.07
[DP] 개미전사  (0) 2021.12.07
[이진탐색] 부품찾기  (0) 2021.12.07
[이진탐색] 떡볶이 떡 만들기  (2) 2021.12.07
[정렬] 두 배열의 원소 교체  (2) 2021.12.07
'알고리즘_코딩테스트/이것이 코딩테스트다' 카테고리의 다른 글
  • [DP] 바닥공사
  • [DP] 개미전사
  • [이진탐색] 부품찾기
  • [이진탐색] 떡볶이 떡 만들기
논곰
논곰
현재 2년 유목하고, 3년 이상 리테일 쪽에서 머신러닝 엔지니어로 잠시 정착 중인 AI 엔지니어입니다.
  • 논곰
    에이아이 유목민
    논곰
  • 전체
    오늘
    어제
    • 분류 전체보기 (200)
      • 기술 견문록 (22)
        • MLOps (8)
        • ProductServing (5)
        • 협업 툴 (3)
        • Error Collecting (2)
        • 컨퍼런스 (1)
        • 자격증 (1)
      • IT 견문록 (10)
        • 추가 학습 정리 (10)
      • 알고리즘_코딩테스트 (162)
        • 프로그래머스_Level1 (40)
        • 백준코딩테스트_단계별문제풀이 (14)
        • 이것이 코딩테스트다 (63)
        • 2021_알고리즘 스터디 (30일) (28)
        • 주간코딩 스터디 (주코스) (17)
      • 독서 견문록 (6)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    기술면접
    다시보기
    구현
    Level2
    dfs
    정렬
    그래프이론
    Level2_PStage
    부스트캠프_AITech_3기
    글또
    mrc
    최단경로
    파이썬 3
    프로그래머스
    MLFlow
    U_stage
    백트랙킹
    백준
    Level1
    이코테
    알고리즘스터디
    주간회고
    python3
    이진탐색
    알고리즘_스터디
    ODQA
    부스트캠프_AITech3기
    그리디
    단계별문제풀이
    dp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
논곰
[DP] 1로 만들기
상단으로

티스토리툴바