exponential_e   3년 전

우선 게시판의 요청 글(https://www.acmicpc.net/board/view/44794)을 참고해서 풀었습니다. (데이터 크기가 잘못 표기된 것 같다는 내용인데 이로 미루어 봤을때 LCA라고 짐작하고 풀었습니다.)

자바로 코드를 짜보니 8%대에서 메모리 초과가 지속적으로 발생했는데, 원인을 잘 모르겠어 대회 테케를 받아 체크해보니 로컬에서 스택오버플로우가 발생했습니다.

(코드에서 depth 배열과 parent 테이블 넘버링을 통해 트리구성을 하는 recursion이라는 함수에서 발생했습니다.)

아무리 봐도 무한 루프 발생 가능성에 대해 코드에서 찾질 못해 bfs로 넘버링 코드를 바꾸고 돌려보니 로컬에선 정상적으로 결과를 뽑아냈으나, 똑같이 8%대에서 메모리 초과를 피할 수 없었습니다.

맞은분들 보니 모두 C, C++ 이용하셨길래 저도 그냥 제 코드를  C++로 고쳐서 제출해보니 통과가 되네요..

자바만의 문제인건지 아님 제 코드 자체의 어떤 습관에 문제가 있는 것인지 궁금하고 여러모로 배우고 싶어 질문 글 올립니다.

아래 제가 제출한 코드 링크 공유 드립니다.

Java: https://www.acmicpc.net/source/21582026 (OOM)

C++: https://www.acmicpc.net/source/21582362 (AC)

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