*문제 출처는 프로그래머스에 있습니다.
문제 제목: 숫자 변환하기 (2단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/154538
문제 설명
나의 풀이
def bfs(x, y, n):
result = 0
s = set() # deque를 사용할 수 있지만 중복을 처리해주는 set이 여기선 더 적합하다.
s.add(x) # x를 시작 포인트로 설정
while s:
new_s = set()
for i in s:
if y in s:
return result
if i + n <= y:
new_s.add(i + n)
if i * 2 <= y:
new_s.add(i * 2)
if i * 3 <= y:
new_s.add(i * 3)
result += 1
s = new_s
return -1
def solution(x, y, n):
answer = bfs(x, y, n)
return answer
중복은 허용하지 않는 set()을 이용하면 쉽게 풀 수 있다.
※ 알아야 할 것
set도 반복문에서 돌려서 사용할 수 있다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-Python' 카테고리의 다른 글
Programmers / [3차] 파일명 정렬 / Python (0) | 2024.05.14 |
---|---|
Programmers / 소수 찾기 / Python (0) | 2024.05.13 |
Programmers / 등굣길 / Python (0) | 2024.05.09 |
Programmers / 택배상자 / Python (0) | 2024.05.07 |
Programmers / 최고의 집합 / Python (0) | 2024.05.06 |