char형 배열인 arr에 %d로 저장할 경우, int의 크기인 4바이트만큼씩을 scanf가 쓰려고 하기 때문에 주변의 다른 원소의 값이 같이 변경되어버립니다. int로 해야 합니다.
그리고 이 방법으로는 시간 초과가 날 것입니다. 예를 들어, 1000x1000 짜리 상자에 오른쪽 아래 끝만 1이고 나머지가 0인 경우, 모든 토마토가 익는 데에 2000일이 소요되는데 2000일 동안 100만개의 칸을 모두 탐색해야 하므로 20억 칸을 조사해야 하는데, 1초 안에 감당이 될 수준이 아닙니다. 지그재그로 돌아가게 만들면 더욱 오랜 시간이 소요됩니다.
muselism 6년 전
왜그럴까요 ㅜㅜ
알고리즘은 딱히 bfs등의 자료구조를 적용하지는 않았습니다.
while문을 돌며 토마토를 검사하고 1주변에 있는 토마토들은 2
2주변은 3... 이런식으로 n 주변에 있는 토마토들은 n+1의 값을 줘가며
모든 토마토가 익을때 까지 while문을 돌렸습니다.
질문글들 찾아가며 모든 테스트케이스 돌려봤는데 제대로 뜨던데 ㅠㅠ
반례가 뭘까요?