[C++] 백준/Gold/12852. 1로 만들기 2
·
C++/Algorithm
문제: 1로 만들기 2 (백준 12852번)문제 분석주어진 정수 x를 아래 연산 세 가지를 사용하여 1로 만드는 최소 연산 횟수를 구하고, 그 과정에서 거친 수열(경로)도 출력하는 문제이다.가능한 연산은:x가 3으로 나누어 떨어지면 3으로 나눈다.x가 2로 나누어 떨어지면 2로 나눈다.x에서 1을 뺀다.BFS(너비 우선 탐색)를 활용하면 최단(최소 연산) 경로를 자연스럽게 찾을 수 있으며, 각 단계에서 이전 상태(부모 노드)를 기록하면 경로 재구성이 가능하다.해결 방법BFS 탐색을 통한 경로 찾기시작점: 입력받은 x를 시작 노드로 한다.방문 기록: visited 배열(혹은 벡터)을 사용해 각 숫자에 도달한 직전 노드를 저장한다.연산 적용: 현재 노드에 대해,만약 2로 나누어 떨어진다면 node/2를,만약..