본문 바로가기

BFS2

백준 9376 탈옥 https://www.acmicpc.net/problem/9376 9376번: 탈옥 문제 상근이는 감옥에서 죄수 두 명을 탈옥시켜야 한다. 이 감옥은 1층짜리 건물이고, 상근이는 방금 평면도를 얻었다. 평면도에는 모든 벽과 문이 나타나있고, 탈옥시켜야 하는 죄수의 위치도 � www.acmicpc.net 이 문제는 공부 삼아 블로그를 참고해서 풀었다 (https://stack07142.tistory.com/145 님 블로그) 정말 혼자서는 생각도 못 해낼 방법인 듯... 많이 배웠다! 기본 기본적으로 이 문제에서 가중치는 연 문의 개수이다 (Pos 객체의 door변수로 체크) visit 배열을 방문/미방문이 아니라 몇 개의 문을 열어 해당 지점에 도착했는지를 기록한다 더 적은 가중치(연 문의 수)로 해당 .. 2020. 5. 21.
백준 16137/SWEA 4727 견우와 직녀 건널 수 있는지 여부 확인 방법 쉬는 시간엔 건널 수 없다! 대기하는 걸 구현하지 않고 이미 대기한 후의 시간(nt)을 계산해서 큐에 넣는다 int waitTime = map[nx][ny] 또는 m (원래 오작교인지 새로 짓는 오작교인지 여부에 따라) int nt = t + (waitTime - (t%waitTime); BFS 건널 수 있는 경우(길, 오작교)와 없는 경우(절벽)으로 나눈다 건널 수 있는 경우 길 ⇒ 일반 BFS 오작교 : 이전에 건넌 적 없었는지 확인 없는 경우 : 새로운 오작교를 만들 수 있는가를 확인! 직전 칸(map[x][y])이 오작교였던 경우 불가 교차하는 곳은 불가 : 포문 돌리며 가로와 세로에 있는 1의 개수를 세어 둘 다 1 이상이면 불가 BFS 코드 static void.. 2020. 5. 16.