백준 15649 N과 M (1)

Lungnaha·2022년 3월 20일
1

코딩테스트

목록 보기
10/13

https://www.acmicpc.net/problem/15649

🥇 아이디어

해당 문제는 DFS로 풀면 됩니다.
특정 조건에서 최단 경로 문제를 해결하는 Queue를 활용한 BFS와는 달리, 재귀함수를 통해 그래프의 깊은 부분을 우선 탐색하는 방법을 사용합니다.
아이디어를 자세히 풀면, DFS로 계속 큰 숫자들을 탐색하고, 만일 방문하지 않았다면 이를 리스트에 추가합니다.
또한, 재귀함수를 돌고 나서는 바로 리스트에 담았던 숫자를 빼도록 해서 언제든 비워진 리스트를 이용할 수 있도록 구현해줍니다.
마지막으로 리스트가 주어진 크기와 같아진 경우, 해당 리스트에 모든 값들을 출력하는 것으로 마무리해보았습니다.

🥈 1차 구현

아래와 같은 코드를 통해 DFS를 활용해보았습니다.

🥉 결과

결과는 맞았습니다.
물론 정답 코드를 구현하기는 했지만, 솔직히 아직 DFS와 BFS에는 자신감이 많이 없는 것 같습니다.

(해당 부분은 공부가 많이 필요한 것 같습니다,,,)

profile
Long🌈Now😁Happy💖

0개의 댓글