아래 코드에 주석 달아놓은 부분에

if(size>=num*2&&(heap[num*2]>heap[num]||heap[num*2+1]>heap[num])) 이 부분을

if(size>num&&(heap[num*2]>heap[num]||heap[num*2+1]>heap[num])) 이렇게 바꾸면 틀렸습니다 라고 나오거든요?

출력은 아무리 해봐도 똑같이 나오는데, 대체 왜 어디가 다른건가요? ㅠㅠ

cubelover   11달 전

num이 최대 10만이기 때문에 size>num으로 체크하면 최악의 경우 heap 배열의 20만번째에 접근해서 오버플로가 납니다. 배열 크기를 20만으로 잡으니까 맞네요.

댓글을 작성하려면 로그인해야 합니다.