BFS
-
백준 17142번 연구소 3 :: 마이구미알고리즘 풀이/그래프 2019. 6. 3. 20:31
이 글은 백준 알고리즘 문제 17142번 "연구소 3" 를 풀이한다. 삼성 SW 역량 테스트 문제이다. 문제 해결을 위해 DFS, BFS 2가지 모두 요구한다. 문제 링크 - https://www.acmicpc.net/problem/17142 DFS, BFS - https://mygumi.tistory.com/102 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고, 활성 상태인 바이러스는 상하좌우로 인접한 모든 빈 칸으로 모두 복제되며, 1초가 걸린다. 승원이는 연구소의 바이러스 M개를 활성 상태로 변경하려고 한다. 연구소는 크기가 N×N인 정사각형으로 나타낼 수 있으며,..
-
백준 16236번 아기 상어 :: 마이구미알고리즘 풀이/그래프 2018. 12. 7. 17:27
이 글은 백준 알고리즘 문제 16236번 "아기 상어" 를 풀이한다.삼성 SW 출제 문제로써, 탐색 문제이다.문제 링크 - https://www.acmicpc.net/problem/16236BFS, DFS - http://mygumi.tistory.com/102 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다.아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다.아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신..
-
백준 16234번 인구 이동 :: 마이구미알고리즘 풀이/그래프 2018. 11. 25. 14:52
이 글은 백준 알고리즘 문제 16234번 "인구 이동" 을 풀이한다.문제는 BFS 를 통해 풀이한다.삼성 SW 역량 테스트에서 출제된 문제이다.문제 링크 - https://www.acmicpc.net/problem/16234BFS - http://mygumi.tistory.com/102 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다.오늘부터 인구 이동이 시작되는 날이다.인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다.국경선을 공유하는 ..
-
백준 2589번 보물섬 :: 마이구미알고리즘 풀이/그래프 2018. 1. 28. 18:05
이 글은 백준 알고리즘 문제 2589번 "보물섬" 을 풀이한다.풀이 방법으로는 BFS(너비 우선 탐색) 을 이용한다.문제 링크 - https://www.acmicpc.net/problem/2589BFS - http://mygumi.tistory.com/102 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 이동은 상하좌우로 이웃한 육지로만 가능하며, 한 칸 이동하는데 한 시간이 걸린다. 보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어 묻혀있다. 육지를 나타내는 두 곳 사이를 최단 거리로 이동하려면 같은 곳을 두 번 이..
-
백준 14503번 로봇 청소기 :: 마이구미알고리즘 풀이/그래프 2017. 10. 28. 17:34
이 글은 백준 알고리즘 문제 14503번 "로봇 청소기" 를 풀이한다.삼성 SW 역량 테스트 문제 중 하나의 문제이다.본인은 BFS를 활용한 풀이를 설명할 것이다.문제 링크 - https://www.acmicpc.net/problem/14503BFS 이해 - http://mygumi.tistory.com/102 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오.로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는..
-
백준 9518번 로마 카톨릭 미사 :: 마이구미알고리즘 풀이/그래프 2017. 10. 15. 22:33
이 글은 백준 알고리즘 문제 9518번 "로마 카톨릭 미사" 를 풀이한다.본인은 BFS를 응용하여 문제를 풀이하였다.9518번 - https://www.acmicpc.net/problem/9518BFS 이해 - http://mygumi.tistory.com/102 로마 카톨릭 미사에서 가장 멋진 부분은 사람들이 서로 악수를 하면서 "평화가 함께하기를" 이라고 말하는 평화 의식이다.성당에는 R개의 벤치가 한 행에 하나씩 있고, 각 벤치에는 총 S명이 앉을 수 있다. 성당의 좌석 배치는 크기가 R × S인 행렬로 나타낼 수 있고, 행렬의 각 원소는 사람이 있는지 없는지로 나타낼 수 있다. 모든 사람은 자신의 이웃과 악수를 한다고 가정한다. 이웃은 사람이 있는 칸과 인접한 칸 여덟개이다. (칸이 존재하지 않을..
-
백준 3055번 탈출 :: 마이구미알고리즘 풀이/그래프 2017. 10. 15. 22:09
이 글은 백준 알고리즘 문제 3055번 "탈출" 을 풀이한다. 본인은 BFS를 활용하여 문제를 해결하였다. 3055번 - https://www.acmicpc.net/problem/3055 기본 DFS, BFS - http://mygumi.tistory.com/102 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 있고, 물이 차있는 지역은 '*', 돌은 'X'로 표시되어 있다. 비버의 굴은 'D'로, 고슴도치의 위치는 'S..
-
백준 14431번 소수마을 :: 마이구미알고리즘 풀이/그래프 2017. 8. 8. 00:41
이번 글은 백준 알고리즘 14431번 "소수마을" 을 다뤄본다.최근 선린고에서 주최된 머그컵이라는 대회에서 출제된 문제이다.이전에 다뤘던 9205번 "맥주 마시면서 걸어가기" 와 흡사한 문제가 된다.9205번 문제는 BFS도 좋은 접근이지만, 플로이드 알고리즘을 통해 문제 풀이를 했다. (9205번 풀이)이번 문제에서는 플로이드가 아닌 BFS를 통해 문제를 해결해본다.DFS, BFS - http://mygumi.tistory.com/102Github 알고리즘 문제 - https://github.com/hotehrud/acmicpc 소수 마을들의 주민들은 매우 특이한 규칙을 준수한다. 규칙은 바로 “가고 싶은 위치까지의 거리가 소수일 경우에만 간다”라는 것이다. 소수 마을의 주민 승욱이는 소수 마을에서 멀..