풀이
시간이 지날 때 마다 빙산이 녹고 빙산이 2 조각 이상 분리될 경우 몇 년이 걸리는지 계산하는 문제이다.
1년이 지날 때 마다 빙산이 녹는 기능은 “미세먼지 안녕!” 문제.
빙산의 조각을 세는 기능은 “단지번호붙이기” 문제.
”단지번호붙이기” 문제와 “미세먼지 안녕!” 문제를 합쳐놓은 문제같다.
while문을 활용해 모든 빙산이 녹거나 빙산이 2 조각 이상으로 분리될 때 까지 위 기능을 반복시킨다.
visited 와 new 2 차원 배열을 초기화 해주면서 1년 후 빙산이 녹았을 때 정보를 new 에 저장해주고,
이 new 를 bfs 에 집어넣어 visited 를 통해 방문처리를 해준다.
bfs 가 한 번 실행될 때 마다 빙산 한 조각이 있다는 얘기기 때문에 이에 맞춰서 piece 변수를 수정해주고,
2 조각 이상일 경우 종료, 아닐 경우 반복하면된다.
소스코드
References