Software Development/Algorithm

DFS/BFS 숙달을 위한 알고리즘 문제(기본/응용)

huiyu 2016. 2. 17. 22:41

DFS/BFS의 경우 사실 이론은 조금만 읽어도 금방 이해가 가능한데요,

그러나 막상 처음 구현하려 하면 바로 구현하기 힘든 경우가 많은데 알고리즘 문제를 반복적으로 풀며 구현해보면 금방 익숙하게 구현할 수 있게 됩니다.


다음은 DFS/BFS 학습을 위해 풀었던 문제들로

[기본]은 간단하게 DFS/BFS를 이용하여 풀 수 있는 문제이고, 

[응용]은 DFS/BFS 중에도 조금 응용을 해야 풀 수 있는 문제입니다

기본적인 이론을 학습한 후 아래 문제들을 순서대로 풀어보면 좋을 것 같습니다.


[기본]

1. 바이러스 : https://www.acmicpc.net/problem/2606

2. 단지번호 붙이기 : https://www.acmicpc.net/problem/2667

3. 보물섬 : https://www.acmicpc.net/problem/2589

4. 토마토 : https://www.acmicpc.net/problem/7576

5. N-Queen : https://www.acmicpc.net/problem/9663


[응용]

1. 3차원 토마토 : https://www.acmicpc.net/problem/7569

2. 탈출 : https://www.acmicpc.net/problem/3055

3. 거울 설치 : https://www.acmicpc.net/problem/2151


모두 백준사이트(https://www.acmicpc.net/)문제로, 무료니 가입하고 풀어보면 됩니다


+거울문제의 경우 테스트케이스 보충

5
***#*
*.!.*
*!.!*
*.!.*
*#***
//2

5
*#*#*
*...*
*.!!*
*...*
*****
//0

5
***#*
*...*
*.!!*
*...*
**#**
//2

5
*#*#*
*...*
*!.!*
*...*
*****
//2

5
***#*
*..!#
*...*
*...*
*****
//1

5
***#*
*!..#
*...*
*!.!*
*****
//3

7
***#***
*!.!..*
*.....*
*.....*
*.....*
#!.*..*
*******
//3

7
***#***
*!.!..*
*.....*
*.....*
*.....*
*!.*..#
*******
//0

7
*******
*!.!..*
*.....*
*!..!.*
*.....*
*!!...*
**#*#**
//4

728x90