Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- mathematics
- Cycle detecting
- POJ
- graph
- 백준
- DynamicProgramming
- dynamic programming
- graph modeling
- BOJ
- Shortest path
- Greedy
- Euler circuit
- disjoint-set
- scc
- bitmask
- backtracking
- Euler path
- Eulerian path
- GCD
- BST
- CS Academy
- implementation
- Algospot
- Sieve_of_Eratosthenes
- hashing
- flows
- Segment Tree
- Eulerian circuit
- BFSDFS
- Dag
Archives
- Today
- Total
그냥 하는 노트와 메모장
BOJ 5213 - TOTEM (과외맨) 본문
* BOJ 5213 - TOTEM (과외맨)
[ 분류 - BFS,DFS / 기타 최단경로 알고리즘 ]
주어진 문자들을 어떻게 노드로 정의할 것이며, 어떻게 자료구조를 설정할 것인지 물어보는 문제.
단순 최단경로 알고리즘을 사용한다면 별다를 문제는 없다.
문제에서는 타일은 두 개의 숫자로 이루어진다. 두 개의 숫자는 각자 '칸'을 의미하며 최대가 6이다. 인접한 타일과 같은 숫자로 접점이 있다면 두 타일은 이어져 있다고 볼 수 있다.
* 접근 방식
1. 각 타일은 2개의 칸이고, 각 칸의 최대가 6이므로 두자리 수 하나로 퉁칠 수 있다.
2. 입력으로 주어지는 순서는 맨위 좌측 타일부터 맨 아래 우측 타일까지를 주어주므로 indexing 절차가 필요함을 알 수 있다. 즉, 단순 2차원 배열로 두고 접근할 수 없으므로, offset(각 행에 대한 열의 수)을 두어 처리할 수 있다.
3. 2.번까지 완료했다면 이제 인접하는지 알아내기 위해 타일에 해당하는 수에 대해 처리한다.
3-1. 현재 타일과 좌측 아래 타일 그림에서의 (1)
3-2. 현재 타일과 우측 아래 타일 그림에서의 (2)
이 과정에서는 좌측 또는 우측 아래 타일이 없을 수 있으므로 범위 확인을 반드시 해야한다.
3-1과 3-2는 수 비교이기 때문에 상수 시간에 판단이 가능하다.
- 코드
'Solved problems' 카테고리의 다른 글
BOJ 3987 - VOYAGER (보이저 1호) (0) | 2018.07.03 |
---|---|
BOJ 6084 - Laserphones (레이저 통신) (0) | 2018.07.02 |
BOJ 1765 - The Gangs (0) | 2018.06.30 |
BOJ 3964 - 팩토리얼과 거듭제곱 (0) | 2018.06.30 |
BOJ 1103 - 게임 (0) | 2018.06.24 |
Comments