Today Sangmin Learned
article thumbnail
728x90

링크

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

난이도(solved.ac 참고)

실버1

풀이

음.. 일반적인 BFS문제라고 생각한다.

전체에 대한 for문을 돌면서 1인 경우에 bfs를 시작했는데, 여러번 반복하지 않기 위해 while문 내부에서 해당 값을 0으로 바꿔버렸다.

이렇게 되면 한번 BFS가 끝났을 때 그 부분은 전부 0으로 바뀌면서 1을 찾는 for문 조건에 충족되지 않게 된다.

BFS 함수 내부에서는, 미로 찾을 때처럼 nx, ny로 좌표를 통해서.. (방문하지 않았고 값이 1인 경우)를 찾아 큐에 더해주는 방식으로 진행했다.

 

bfs 함수를 실행한 결과로 나온 count를 ans_list라는 리스트에 넣었고, 그 리스트의 길이와 가장 작은 값부터 순서대로 출력하게끔 했다.

profile

Today Sangmin Learned

@steadily-worked

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!