icd0422   4년 전

안녕하세요

문제 풀이는 이렇습니다. 전체 땅에 대해 2차원 배열로 구성했습니다. 땅의 요소는 에너지(양분) 과 그 땅에 있는 나무들을 list로 구현했습니다.

처음 나무에 대해서만 리스틀 나이 오름차순으로 정렬 하였고 년도가 지나감에 따라 죽은 나무를 list.erase로 처리했고 추가되는 나무에 대해서는

무조건 나이가 1이니까 리스트의 맨앞의 front_push로 처리하였습니다. 그런데 시간초과가 나네요... 계속 생각을 해봤지만 이해가 가지를 않습니다. 

다른 분들 풀이를 보니까 그냥 백터로 구현하고 심지어 계속 정렬까지 하는 코드도 맞다고 나오는데 제 풀이는 왜 시간초과가 나오는지를 모르겠습니다... 

리스트면 오히려 요소 삭제에 대해서 빠를 텐데요... 정렬도 처음만 해주고 그 뒤로는 안해주는데도요.... 

답변해주시면 너무 감사하겠습니다..ㅜㅜ


아래는 제 풀이 코드입니다.

  

zagabi   4년 전

이거 그러면 벡터로 구현하면 시간초과가 안났다는 말씀인가요? 다른 부분 로직 문제 없는거 확실한가요?

joonas   4년 전

저도 리스트로 구현했는데 맞았으니 문제는 없을 것 같구요.

양분을 먹고 무럭무럭 자라면, 하나의 칸에 여러 개의 나무가 "엄청" 많을 수도 있습니다.

icd0422   4년 전

나무의 속성을 age로만 했는데

age 와 cnt로 구조를 바꿔서 푸니까 시간초과가 안나고 해결했습니다.

리스트 벡터 문제가 아니라 제 로직문제 였습니다ㅜ


다들감사합니다~

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