Baekjoon

[백준] 3055번 - 탈출

yujin0517 2023. 6. 21. 15:46

3055번 - 탈출

[문제]

https://www.acmicpc.net/problem/3055

 

3055번: 탈출

사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제

www.acmicpc.net

 

[문제 풀이]

D . *
. . .
. S .
D * *
. S *
S S S
D * *
S S *
S S S

위 표는 고슴도치가 비버의 굴을 찾아가는 과정이다.

1분에 빈칸(.)으로 한 칸씩 이동이 가능하며, 물(*)도 1분에 한 칸씩 채워진다. 

물이 채워진 곳과 고슴도치의 위치를 나타내기 위해 2개의 Queue(water - 물, queue - 고슴도치)를 사용하였다. 

(경로를 구하는 문제이기 때문에 dx, dy 배열을 사용하여 상하좌우로 이동할 수 있도록 구현하였다.)

고슴도치는 물이 찰 예정인 칸으로 이동하지 못하기 때문에 water 큐를 사용하여 물이 채워질 칸을 먼저 구하였다. 

그다음 고슴도치가 이동할 수 있는 칸을 구하였다. 고슴도치가 이동했을 때 해당 칸이 비버의 굴(D)이면 탐색을 멈춘다. 

 

[주요 코드]

빈 칸에 물이 채워지는 과정
고슴도치의 이동 경로

 

[전체 코드]

 

 

2023.06.21

'Baekjoon' 카테고리의 다른 글

[백준] 1182번 - 부분수열의 합  (0) 2023.04.07
[백준] 1107번 - 리모컨  (0) 2023.04.06
[백준] 2178번, 2667번  (0) 2023.02.12
[백준] 1644번 - 소수의 연속합  (0) 2023.02.05
[백준] 1456번 - 거의 소수  (0) 2023.02.04