전체 글 123

[재귀] 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)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 ..

[BFS] 돌 그룹

예제 입력 1 10 15 35 예제 출력 1 1 예제 입력 2 1 1 2 예제 출력 2 0 https://www.acmicpc.net/problem/12886 12886번: 돌 그룹 오늘 강호는 돌을 이용해 재미있는 게임을 하려고 한다. 먼저, 돌 세개는 그룹으로 나누어져 있으며 각각의 그룹에는 돌이 A, B, C개가 있다. 강호는 모든 그룹에 있는 돌의 개수를 같게 만들려고 한다. 강호는 돌을 단계별로 움직이며, 각 단계는 다음과 같이 이루어져 있다. 크기가 같지 않은 두 그룹을 고른다. 그 다음, 돌의 개수가 작은 쪽을 X, 큰 쪽을 Y라고 정한다. 그 다음, X에 있는 돌의 개수를 X+X개로, Y에 있는 돌의 개수를 Y-X개로 www.acmicpc.net - 시간 복잡도 + 공간 복잡도를 줄이기 위..