최근에 코테를 보게 되었는데, 너무 준비해둔게 없어서 문제를 잘 풀지 못했다.
그래서 프로그래머스의 기초 문제를 이제 꾸준히 풀어야 겠다고 생각했다.
| 지금 하는 거 |
|---|
 |
- 추천 문제를 이렇게 주어서 시작하기 좋은 것 같다.
그리고 오답 노트 느낌으로 Gemini에게 비슷한 문제 유형를 받아서 그 문제들을 풀어보기로 하였다.
(코테 문제 유출이 안되서 ㅠㅠ)
문제 소개
- 5x5 맵 -> 입력 값
- 플레이어 시작 지점 0,0
- 보스 몹 위치 0,0
- 최단거리로 이동할 때, 이동 거리 구하기 -> 출력 값
- 이동 불가에 경우 -1 -> 출력 값
나의 문제 풀이
- 처음에 깊이 우선 탐색(DFS)이라고 생각했는데, 풀다가 답이 안보여서 Gemini에게 힌트 좀 달라고 했다.
- DFS -> 모든 경로 탐색을 하게됨. 비효율 / BFS -> 처음 도착하는 경로가 곧 최단 경로.
- BFS의 경우엔 Queue 자료구조를 사용. (선입선출)
- maps 배열 자체에 거리를 기록 하면, 한 번 방문한 곳도 가지않게 방지 가능.
- 두 가지 배열을 이용해서 이동 가능한 방향을 설정.
- 종료 및 예외 처리 조건들
| 결과 |
|---|
 |
- 2레벨 문제는 처음 풀어보는데, 효율성도 체크해준다.
소감
예전에도 문제 풀이 해보긴 했는데, 역시 꾸준히 하기가 제일 힘들다. 이번에는 잘 해봐야 겠다.