BOJ 16234 인구이동

iinnuyh_s·2023년 3월 18일
0

문제링크

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

생각한 풀이 (실패)

  • while문안에서 이중for문 돌리면서 방문하지 않은 경우 bfs 실행
  • 방문처리를 3차원배열로 처리하려고 했음->잘못된 로직 짜서 무한루프돔
  • 인구이동 한 번 끝난 뒤 방문배열 초기화를 안함.->반영되지 않는 인구이동이 있음

참고한 풀이

  • 방문처리는 원래 bfs 하던 대로 처리하고, 인구이동을 한번 한 뒤 이중 for문이 새로 시작될 때 방문배열 초기화 진행
  • 각 bfs 돌 때마다 인구이동을 해야하는 칸들을 저장하기 위해 list 배열을 따로 둠. 이동할 수 있는 칸을 만날 때마다 list에 저장
  • list size가 1이라면, bfs를 다 돌아도 이동할 칸이 없다는 것을 의미. 따라서 while문 종료 조건을 list size가 1이하일 때로 설정.

0개의 댓글