알고리즘 문제 풀이: 파이썬/BOJ

[BOJ_7576] 토마토

hueco 2023. 10. 2.

 

📌 문제 링크: https://www.acmicpc.net/problem/7576

 

7576번: 토마토

첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토

www.acmicpc.net

 

내 풀이(Success) :

 

🧐 Review:

 같은 유형의 실버 문제를 몇 문제 풀고 나서 도전해 보니 골드 난이도의 문제도 어렵지 않게 풀 수 있었다. 유형별로 문제를 풀면서 난이도를 높여가는 방법으로 연습을 해봐야겠다.

 

위 문제에서는 기존 배열(grid)의 값을 수정하면서 탐색을 진행하기 때문에 굳이 visited 배열을 이용해서 방문 여부를 확인할 필요가 없었다.

정형화된 유형의 문제를 풀더라도 항상 근거를 들면서 '과연 이게 필요할까?'라고 스스로에게 다시 물어보면서 문제를 푸는 것이 좋겠다. 그런 측면에서 이 문제에서는 BFS를 굳이 함수로 정의하지 않은 점은 꽤 괜찮은 부분이었다는 생각이 든다.

 

🚩 Idea:

 1. 1(익은 토마토)의 위치를 파악해서 큐에 넣는다.

 2. 1이 있는 모든 위치에서 BFS를 진행하며 0(익지 않은 토마토)의 값을 변환한다.

 3. 탐색이 종료되면, 경우에 따라 적절한 값을 출력한다.

 

 

댓글