코딩테스트 기록 7일차
CodingTest
코딩테스트 기록 7일차
1. 24479번: 알고리즘 수업 (메모리: 87884KB, 시간: 1008ms)
문제 정리
- 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000),시작 정점 R (1 ≤ R ≤ N)이 주어진다가 주어진다.
- N개의 정점과 M개의 간선으로 구성된 무방향 그래프에서, 정점 R에서 시작하는 깊이 우선 탐색(DFS)을 수행하여 각 정점의 방문 순서를 출력한다.
- 모든 간선의 가중치는 1이며, 방문할 수 없는 정점의 방문 순서는 0으로 출력한다.
개념 및 접근법
- 깊이 우선 탐색(DFS) 알고리즘을 사용하여 각 정점을 방문한다.
- 인접 정점은 오름차순으로 방문한다.
- 방문 순서를 기록하기 위한 배열을 사용한다.
- 시작 정점에서 탐색을 시작하여 모든 연결된 정점을 방문하고, 방문 순서를 기록한다.
2. 24444번: 알고리즘 수업 - 너비 우선 탐색 1 (메모리: 99920KB, 시간: 1844ms)
문제 정리
- 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000),시작 정점 R (1 ≤ R ≤ N)이 주어진다.
- 주어진 입력은 N개의 정점과 M개의 간선으로 구성된 무방향 그래프입니다.
- 모든 간선의 가중치는 1입니다.
- 정점 R에서 시작하여 너비 우선 탐색(BFS)을 통해 각 정점의 방문 순서를 출력해야 합니다.
개념 및 접근법
- BFS를 이용한다.(Queue사용)
- 인접한 정점(edge값)을 오름차순으로 방문하기 위해, 해당 인접 리스트를 정렬.
3. 10026번: 적록색약 (메모리: 16492KB, 시간: 176ms)
문제 정리
- N*N 크기의 그리드의 각 칸에 R,G,B값만 채워지는 그림이 있다.
- 같은 색상이 상하좌우로 인접해 있으면 같은 구역으로 취급한다.
- 적록색약인 사람은 G,R을 구분하지못해서, 같은 색상으로 취급한다.
- 적록색약인 사람과, 아닌 사람이 볼 때의 구역 수를 각각 구하라.
개념 및 접근법
- BFS를 사용해 각 구역의 인접 칸을 탐색하며 구역의 수를 구한다.
- 적록색약은 R을 G로 바꾸거나, G를 R로 바꾸어 동일한 색상으로 처리하게 한다.
4. 7562번: 나이트의 이동 (메모리: 106928KB, 시간: 392ms)
문제 정리
- 나이트가 원하는 칸에 이동할 수 있는 최소 거리를 구하라.
개념 및 접근법
- 최소 거리 문제이기에 BFS를 사용한다.
- 체스판의 위치를 그래프의 노드, 이동을 간선(edge)로 생각한다.
- BFS 알고리즘은 시작 노드에서 가장 가까운 노드부터 방문하기떄문에, 목표 노드에 도달한다면, 그 시점의 이동 횟수가 최소 이동횟수가 된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.