코드에 문제가 있습니다. 구체적으로는 Pop_Front() 와 Pop_Back() 에요.
4
push_back 3
push_back 2
pop_back
pop_back
이런 입력을 수행하고 나면 원래는 덱이 비어있어서 _head 와 _tail 둘 다 nullptr 이어야 하는데
실제로 위 코드로 이 입력을 수행해보면
_head 에도 이상한 주소가 남아있고 _head->prev 에도 이상한 주소가 남아있습니다.
이렇게 된 상태에서 Clear() 를 부르면
무한루프를 돌게 됩니다.
물론 시스템에 따라서 무한루프를 돌지 않고 그냥 프로그램이 종료될 수도 있습니다. (double free 인 상황이서 수행하다가 죽음)
여튼 그래서 이런 이유 때문에 Clear() 를 부르면 무한루프를 돌아서 시간초과가 나는 듯 합니다.
liyu4752 5년 전
메모리 해제를 하는 메소드를 호출하면 시간 초과라고 뜨네요.
해제 메소드를 빼면 정답이라고 뜨긴 합니다..
그래서 문제 풀 때 해제에 대해 처리를 안 해도 되는지 궁금합니다.