시간복잡도 : O(mn)
알고리즘 : BFS
풀이 설명 : grid
를 탐색하면서 신선한 오렌지의 개수를 세고, 상한 오렌지를 모두 큐에 넣어줍니다. 상한 오렌지에서 시작해서 신선한 오렌지로 너비 우선 탐색을 하는데, 큐의 길이 만큼 반복문을 수행하여 BFS 한 사이클 마다 신선한 오렌지를 상하게 하는 시간을 1씩 증가시켜 측정합니다. 신선한 오렌지의 개수 만큼 방문했다면 측정한 시간을 반환하고, BFS를 모두 수행한 후에도 신선한 오렌지가 남아있으면 -1을 반환합니다.
소스코드 : link