본문 바로가기
Category/Note

알고리즘 탐색 문제 유형별 좌표 변수명 가이드

by Corinee 2024. 11. 25.
728x90
반응형

알고리즘 문제를 풀다 보면 좌표를 다루는 탐색 문제가 자주 등장합니다. 이러한 문제는 2차원 배열(맵/그래프)부터 3차원 공간 탐색까지 다양한 유형으로 나타나며, 적절한 변수명을 사용하는 것이 가독성과 효율적인 문제 해결에 큰 도움이 됩니다. 이번 글에서는 알고리즘 탐색 문제의 유형별로 적합한 좌표 변수명을 정리하여 소개합니다.

1. 일반적인 BFS/DFS 탐색

문제 상황

  • 그래프나 맵을 탐색하며 연결된 영역을 찾는 문제.
  • 보통 2차원 배열에서 특정 칸(좌표)을 방문하거나 이동 방향을 확인하는 방식으로 풀이합니다.

추천 변수명

  • 현재 좌표: x, y, cx, cy (current x, current y)
  • 다음 좌표: nx, ny (new x, new y), next_x, next_y
  • 이웃 좌표: neighbor_x, neighbor_y, adj_x, adj_y (adjacent)

2. 맵/지도 기반 문제

문제 상황

  • 미로 탈출, 섬의 개수 찾기, 단지 번호 붙이기와 같은 문제.
  • 좌표를 이동하며 현재 위치와 목표 위치를 구분하는 것이 중요.

추천 변수명

  • 현재 위치: current_x, current_y, cx, cy
  • 다음 위치: next_x, next_y, nx, ny
  • 목표 좌표: target_x, target_y, tx, ty

3. 그래프 탐색 문제

문제 상황

  • 그래프에서 연결된 노드들을 탐색하거나 최단 경로를 찾는 문제.
  • 인접 노드(이웃 노드)와 현재 노드를 구분하는 것이 중요.

추천 변수명

  • 현재 노드: current_node, node
  • 다음 노드: next_node
  • 이웃 노드: neighbor, adj_node

4. 3차원 또는 다차원 탐색 문제

문제 상황

  • 3D 공간에서 이동하는 문제 (예: 게임 맵, BFS로 퍼지는 문제 등).
  • 추가 차원(z축)을 다루어야 하므로 변수명에 차원을 명시.

추천 변수명

  • 현재 위치: cx, cy, cz (current x, current y, current z)
  • 다음 위치: nx, ny, nz (new x, new y, new z)
  • 목표 위치: target_x, target_y, target_z

5. 행렬(2차원 배열) 순회 문제

문제 상황

  • 행렬에서 특정 값의 위치를 찾거나, 전체를 순회하며 처리해야 하는 문제.
  • 일반적으로 행(row)과 열(column)을 명확히 구분해야 함.

추천 변수명

  • 현재 위치: row, col, r, c
  • 이동 방향: dr, dc (delta row, delta column)

6. 게임 보드/미로 탐색 문제

문제 상황

  • 캐릭터가 움직이며 특정 위치로 이동하거나 경로를 탐색.
  • 이동 대상이 무엇인지 구분할 필요가 있음.

추천 변수명

  • 현재 위치: player_x, player_y, robot_x, robot_y
  • 다음 위치: next_player_x, next_player_y, next_robot_x, next_robot_y

7. 특정 대상 강조 문제

문제 상황

  • 문제가 특정 대상(예: 특정 물체, 사람)의 위치와 이동을 다룰 때.
  • 명확한 변수명을 통해 가독성 향상.

추천 변수명

  • 현재 대상: object_x, object_y
  • 다음 대상: next_object_x, next_object_y
  • 목표 위치: target_x, target_y

알고리즘 문제에서 변수명을 명확히 정의하면 코드를 읽고 이해하기 쉬워지고, 디버깅 과정에서도 많은 도움을 받을 수 있습니다. 특히, 탐색 문제에서 현재 좌표와 이동 좌표를 구분하거나 문제의 맥락에 맞는 변수명을 사용하면 더 직관적이고 가독성이 높은 코드를 작성할 수 있습니다.