Algorithm 98

[BFS] 레이저 통신

예제 입력 1 7 8 ....... ......C ......* *****. ....*.. ....*.. .C..*.. ....... 예제 출력 1 3 https://www.acmicpc.net/problem/6087 6087번: 레이저 통신 문제 크기가 1×1인 정사각형으로 나누어진 W×H 크기의 지도가 있다. 지도의 각 칸은 빈 칸이거나 벽이며, 두 칸은 'C'로 표시되어 있는 칸이다. 'C'로 표시되어 있는 두 칸을 레이저로 통신하기 위해서 설치해야 하는 거울 개수의 최솟값을 구하는 프로그램을 작성하시오. 레이저로 통신한다는 것은 두 칸을 레이저로 연결할 수 있음을 의미한다. 레이저는 C에서만 발사할 수 있고, 빈 칸에 거울('/', '\')을 설치해서 방향을 90도 회전시킬 수 있다. www.ac..

[재귀] N과 M(1)

예제 입력 1 3 1 예제 출력 1 1 2 3 예제 입력 2 4 2 예제 출력 2 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 2 3 4 4 1 4 2 4 3 예제 입력 3 4 4 예제 출력 3 1 2 3 4 1 2 4 3 1 3 2 4 1 3 4 2 1 4 2 3 1 4 3 2 2 1 3 4 2 1 4 3 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1 3 1 2 4 3 1 4 2 3 2 1 4 3 2 4 1 3 4 1 2 3 4 2 1 4 1 2 3 4 1 3 2 4 2 1 3 4 2 3 1 4 3 1 2 4 3 2 1 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 ..

Algorithm/Algorithm 2019.10.28

[BFS] 아기 상어

예제 입력 1 3 0 0 0 0 0 0 0 9 0 예제 출력 1 0 예제 입력 2 3 0 0 1 0 0 0 0 9 0 예제 출력 2 3 예제 입력 3 4 4 3 2 1 0 0 0 0 0 0 9 0 1 2 3 4 예제 출력 3 14 예제 입력 4 6 5 4 3 2 3 4 4 3 2 3 4 5 3 2 9 5 6 6 2 1 2 3 4 5 3 2 1 6 5 4 6 6 6 6 6 6 예제 출력 4 60 예제 입력 5 6 6 0 6 0 6 1 0 0 0 0 0 2 2 3 4 5 6 6 0 0 0 0 0 2 0 2 0 0 0 0 3 9 3 0 0 1 예제 출력 5 48 예제 입력 6 6 1 1 1 1 1 1 2 2 6 2 2 3 2 2 5 2 2 3 2 2 2 4 6 3 0 0 0 0 0 6 0 0 0 0 0 9 예..

[BFS] 탈출

예제 입력 1 3 3 D.* ... .S. 예제 출력 1 3 예제 입력 2 3 3 D.* ... ..S 예제 출력 KAKTUS 예제 입력 3 3 6 D...*. .X.X.. ....S. 예제 출력 3 6 예제 입력 4 5 4 .D.* .... ..X. S.*. .... 예제 출력 4 4 https://www.acmicpc.net/problem/3055 3055번: 탈출 문제 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 ..

[BFS] 움직이는 미로 탈출

예제 입력 1 ........ ........ ........ ........ ........ ........ ........ ........ 예제 출력 1 1 예제 입력 2 ........ ........ ........ ........ ........ ........ ##...... ........ 예제 출력 2 0 예제 입력 3 ........ ........ ........ ........ ........ .#...... #....... .#...... 예제 출력 3 0 예제 입력 4 ........ ........ ........ ........ ........ .####### #....... ........ 예제 출력 4 1 예제 입력 5 ........ ........ ........ .....

[BFS] 벽 부수고 이동하기 3

예제 입력 1 1 4 1 0010 예제 출력 1 5 예제 입력 2 1 4 1 0100 예제 출력 2 4 예제 입력 3 6 4 1 0100 1110 1000 0000 0111 0000 예제 출력 3 15 예제 입력 4 6 4 2 0100 1110 1000 0000 0111 0000 예제 출력 4 9 https://www.acmicpc.net/problem/16933 16933번: 벽 부수고 이동하기 3 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net - 추가된 조건은, 이동하지 않고 같은 칸에 머무르는 경우에도 낮..

[BFS] 벽 부수고 이동하기 2

예제 입력 1 6 4 1 0100 1110 1000 0000 0111 0000 예제 출력 1 15 예제 입력 2 6 4 2 0100 1110 1000 0000 0111 0000 예제 출력 2 9 예제 입력 3 4 4 3 0111 1111 1111 1110 예제 출력 3 -1 https://www.acmicpc.net/problem/14442 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net - 거리를 잴 때, dist[r][c]로 재던것을 dist[r][c][k]로 나누어서 풀..

[BFS ] 벽 부수고 이동하기 4

예제 입력 1 3 3 101 010 101 예제 출력 1 303 050 303 예제 입력 2 4 5 11001 00111 01010 10101 예제 출력 2 46003 00732 06040 50403 https://www.acmicpc.net/problem/16946 16946번: 벽 부수고 이동하기 4 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 변을 공유할 때, 인접하다고 한다. 각각의 벽에 대해서 다음을 구해보려고 한다. 벽을 부수고 이동할 수 있는 곳으로 변경한다. 그 위치에서 이동할 수 있는 칸의 개수를 세어본다. www.acmicpc.net..

[BFS] 벽 부수고 이동하기

예제 입력 1 6 4 0100 1110 1000 0000 0111 0000 예제 출력 1 15 예제 입력 2 4 4 0111 1111 1111 1110 예제 출력 2 -1 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 ..