qktlf789456   3년 전

일단 풀어보자식으로 했고 시간초과가 나더라도 틀릴이유가 궁금하네요 .. 9%에서 틀렸습니다.

pl0892029   3년 전

자료구조 힙은 루트가 가장 우선순위 높은 값은 맞지만, 그 아래로는 보장할 수 없습니다.

루트의 왼쪽 자식이, 루트의 오른쪽 자식의 자식값보다 우선순위가 낮을 수 있습니다.

qktlf789456   3년 전

네 맞습니다, 따라서 힙에 root에있는 값을 2번 꺼내는 식으로 2번째 큰 값을 찾는 방식을 택했습니다.

pl0892029   3년 전

아이디어 자체는 시간초과가 날지언정 딱히 틀릴 것은 없어보입니다. 제가 보기에 딱히 문제가 될 점은

- Heap 사이즈가 문제를 풀기에는 작습니다. 캔디는 20억개가 가능합니다. (고쳐서 되는건 아닙니다.)

- tmp 사이즈가 너무 작습니다. 가장 마지막 캔디를 가져오려 한다면 역시 20억개는 수용 가능해야 합니다.

코드의 오류를 잡아야되는 상황으로 보이는데, 이 과정이 고통스럽기 때문에 다른 풀이로 넘어가시는 것을 추천드립니다.
기대하시는 답변을 못드려서 아쉽네요.

qktlf789456   3년 전

그렇군요 heap 사이즈도 동적으로 늘어날때마다 realloc 도 해줬고 , tmp 도 마찬가지였는데 그냥 답만 맞으면 넘어가야겠습니다..! 아이디어만 맞았다면 만족해야겠네요 :)

klm1118   3년 전

@qktlf789456


저도 9%에서 틀렸었는데요!

저의 실수는 세그먼트 트리의 크기를 N을 이용해서 높이를 구하고 크기를 정해줬었습니다!

그러나 100만(최대값)을 이용해서 높이를 구해서 트리 크기를 지정해줬더니 해결되었습니다.

단순 실수였습니다!

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