10273번 - 고대 동굴 탐사
그것과 거의 똑같은 이유로 시간이 오래 걸리는 것이 또 있습니다.
main 메서드에서 ar을 한 번만 만들어두고 이후에는 매 테스트 케이스마다 0~N까지의 인덱스에 새로운 ArrayList를 끼워넣는 식으로 구현하고 있는데 이러면 새 오브젝트를 추가할 때마다 기존에 그 인덱스 이후에 있던 모든 오브젝트들이 전부 한 칸씩 뒤로 밀려나야 합니다. 그래서 테케마다 누적될수록 더욱 많은 시간이 걸립니다.
매 테스트 케이스마다 ar = new ArrayList<ArrayList<Cave>>(); 를 새로 해주면 통과됩니다.
댓글을 작성하려면 로그인해야 합니다.
yoodly 5년 전
안녕하세요.
얼마 전에 JAVA 재채점으로 시간 초과가 발생했는데, BufferedReader, BufferedWriter로 IO를 개선해 봐도 똑같이 시간초과가 발생합니다.
위상정렬을 사용해서 O(N)으로 풀어서 로직으로는 시간을 더 줄일 수 없는 것 같은데, 12% 인근에서 시간 초과가 계속 발생하네요.
입력 테스트 케이스가 뭐길래 그런지.. ㅠㅠ
조언 부탁드립니다~