grapecw   2년 전

나무를 딕셔너리에 키를 좌표로 하여 나무들을 저장했습니다.

봄에 나무를 뽑아서 여름에 있을 죽는 나무를 dieTree에 저장했고 가을에 있을 번식을 하는 나무는 prduction에 넣어서 가을이나 겨울때 따로 계산할 필요가 없게 하였습니다.

혹시 어디에서 시간을 더 단축 시킬 수 있는지 알려주실 수 있으십니까?

owell   2년 전

heapq를 사용하면 원소를 넣거나 뺄 때마다 내부에서 정렬이 이뤄져서 시간 초과가 발생하는 것 같습니다. heapq를 사용하지말고 리스트를 이용하되 

리스트는 나무들을 입력 받은 후  시뮬레이션이 시작하기 전에 한번만 정렬해주고 새로 자라나는 나무들이 리스트의 맨 앞에 삽입되도록 한다면 오름차순으로 계속 유지됩니다.

저는 봄이 시작할때만 정렬해주었는데도 시간 초과가 나지 않은 걸 보니, 힙 사용이 문제가 되는 것 같습니다.

grapecw   2년 전

owell

감사합니다. deque()를 통해 넣고 빼는 시간 단축시키고, 해시 맵에 키가 있는지 없는지 확인 하는 부분을 한번만 확인하게 하니 통과되었습니다.

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