오랫동안 풀지 못했던 문제를 겨우겨우 풀어내었다.
물론 약간의 힌트를 얻고 나서였다.
격자 모양의 상자에 토마토가 들어있는데, 토마토는 한 시간당 주위의 것을 익혀나간다.
모든 토마토가 익는데 걸리는 시간을 구하여라 였다.
토마토는 여러 군데 익은 상태의 것이 있을 수 있었고,
어쨋든 나는 bfs로 수행하는 데까지는 잘 방향을 잡았다.
익은 토마토마다 bfs함수를 한 번씩 실행하게 했는데, 이 것이 미쓰였다.
맨 처음에 이미 익은 토마토를 한 번에 큐에 담았다가 bfs를 한 번만 수행하면 되는 것이 포인트였다.
여러 예외 처리를 할 필요도 없고, 그리고 더군다나 이 것이 가장 정확한 방법이었다.
bfs의 원리에 대해서 정확히 알지 못 한채 문제를 풀어서 못 푼 것이었다.
bfs에 대해서 좀 더 정확히 이해할 수 있게 해준 문제
여러 군데에서 동시에 bfs를 수행해야 하는 경우 한번에 큐에 담아 내는 방법에 대해서 활용 할 줄 알고 이해해야 한다.