일단 29번째 줄의 sort가 이상하네요. 저 소트의 범위를 보면 0 ~ cnt까지 저장되어 있는 수를 정렬하는데, 코드를 읽어보면 1~cnt-1를 정렬해야합니다.
2667번 - 단지번호붙이기
또한, 최악의 경우 테스트케이스가
25
1010101010101010101010101같은게 나올수있는데 과연 배열의 최대크기가 25로 충분할까요?
왜 현재 코드가 예제는 잘 나왔냐 하면, map[i][j]가 0인 곳이 가장 많아서 totalNumber를 0까지 포함해서 정렬해도 cnt번째로 넘어갔기 때문에 출력이 되지 않아서 그랬을 뿐입니다. 3 111 111 111 예제에서는 0이 하나도 없기 때문에 0번째에 위치하게 되고, cnt번째인 2도 totalNumber[2] 역시 0이기 때문에 1번째에 위치하고, totalNumber[1]은 9였기 때문에 totalNumber[2]가 되면서 출력 범위에 들어가지 않게 된 것입니다.
sort 범위를 totalNumber + 1, totalNumber + cnt로 하고, totalNumber의 크기를 1000으로 늘리면 맞습니다.
댓글을 작성하려면 로그인해야 합니다.
specimen 5년 전
예전에 bfs로 풀었다가
dfs가 너무 약한거 같아서 다시 풀어보고 있습니다.
질문 게시판을 돌아다니면서
여러 예제들을 넣어 봤는데 잘 나옵니다.
그래서
3
111
111
111
이렇게 넣어봤는데
1
9
가 나와야 되지 않나요? 그런데
1
0을 출력을 하네요.
소스 어느 부분이 틀린건지 고수님들 도움 좀 부탁드립니다.
그리고 다른 분들 dfs를 보면 되게 간단하게 소스도 짧게 짜시더라구요.
그런데 재귀를 이해하는데 아직도 시간이 필요한 것 같아서. bfs 짜듯이 방향을 줘서(const int dy, dx 선언) 이런식으로 짰는데
이런 식으로 짜도 큰 상관이 없을지 궁금합니다.