문제
https://school.programmers.co.kr/learn/courses/30/lessons/154538
풀이
BFS로 풀면 됨.
다만 6번 테스트 케이스에서 계속 틀림
y가 x값과 같을 수 있음을 고려하지못함
if x == y : return 0 추가
소스코드
from collections import deque
def solution(x, y, n):
INF = 1e9
dp = [INF] * (y+1)
q = deque()
q.append((x, 0))
while q:
num, cnt = q.popleft()
for next_num in (num+n, num*2, num*3):
if next_num > y:
continue
if dp[next_num] == INF:
dp[next_num] = cnt + 1
q.append((next_num, cnt + 1))
if x == y:
return 0
elif dp[y] == INF:
return -1
else:
return dp[y]
'💡Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 덧칠하기 (Python) (0) | 2023.03.07 |
---|---|
[프로그래머스] 외벽 점검 (Python) (0) | 2022.12.20 |
[프로그래머스] 괄호 변환 (Python) (0) | 2022.11.17 |
[프로그래머스] 자물쇠와 열쇠 (Python) (0) | 2022.11.16 |
[프로그래머스] 신고 결과 받기 (Java) (0) | 2022.01.20 |