Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Workbench
- 데베시 1주차
- c언어
- 인스타
- DP
- 코딩테스트
- 최단거리
- c언어 기본
- c언어 제어문
- 파이썬 알고리즘 인터뷰
- 1주차(1)
- git 오류
- 4장
- python자료형
- git오류
- 스택
- python기초
- python기본
- 인텔리제이
- 그리디
- 참고X
- 5장
- git기초
- 도커
- #코린이 #코딩 #할 수 있다
- 자료구조
- 코테
- Git
- 백준
- 운체 1주차
Archives
- Today
- Total
하루살이 개발자
[프로그래머스] Lv2. 숫자 변환하기(by Python) 본문
문제
코딩테스트 연습 - 숫자 변환하기 | 프로그래머스 스쿨 (programmers.co.kr)
풀이
- 많이 나오는 유형의 DP문제이다.
- dp리스트를 최댓값으로 초기화하고, x에 3가지 옵션(n더하기, 2곱하기, 3곱하기)를 하면서 해당 dp값을 최솟값으로 갱신시켜주면 된다.
코드
def solution(x, y, n):
answer = 0
li = []
dp = [1e9 for _ in range(y+1)]
dp[x] = 0
for i in range(x, y+1):
if i + n <= y:
dp[i+n] = min(dp[i+n], dp[i] + 1)
if i * 2 <= y:
dp[i*2] = min(dp[i*2], dp[i] + 1)
if i * 3 <= y:
dp[i*3] = min(dp[i*3], dp[i] + 1)
if dp[y] == 1e9:
return -1
else:
return dp[y]
'코딩테스트' 카테고리의 다른 글
[SQL 코테] 프로그래머스 Lv.3 문제풀이(by MySQL) (0) | 2023.10.11 |
---|---|
[백준] 2023 신기한 소수 (by JAVA) (0) | 2023.08.21 |
[프로그래머스] Lv2. 택배상자(by Python) (0) | 2023.05.25 |
[프로그래머스] Lv2. 두 큐 합 같게 만들기(by Python) - 카카오 2번 문제 (0) | 2023.05.25 |
[프로그래머스] Level4 DP문제(by Python) (0) | 2023.04.15 |