프로그래머스에서 숫자 변환하기 문제를 풀었습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/154538
문제에 대한 설명은 위의 링크에서 확인하시면 됩니다.
최소 연산 횟수를 구하기 위해 BFS로 풀었습니다.
숫자와 연산 횟수를 저장하는 배열을 큐에 저장합니다.(32 ~ 33라인)
0번째 인덱스는 현재까지 연산한 숫자이고, 1번째 인덱스 현재까지 연산한 횟수입니다.
연산한 숫자 여부를 저장하는 set을 생성합니다.(35 ~ 36라인)
set은 BFS나 DFS에서 노드 방문여부를 관리하는 것과 비슷한 역할을 합니다.
문제에서 주어진 조건으로 연산을 수행합니다.(38 ~ 63라인)
연산한 숫자가 목표인 숫자로 변환된 경우 answer에 연산 횟수를 저장합니다.(41 ~ 44라인)
BFS를 이용하면 쉽게 풀 수 있는 문제입니다.