죄송합니다만 글을 읽어봐도 잘 이해하지 못했습니다.. 추가 설명 부탁드려도 될까요?
제가 질문에 올린 두 코드 모두 같은 remove()방식을 사용하고 있습니다.
두 코드의 유일한 차이점은 시간초과가 난 코드는 doneCount라는 변수를 추가적으로 사용한다는 점입니다.
doneCount++; 연산이 많이 수행되어봤자 M의 최대 크기인 만 번인데,
단순히 만 번의 + 연산 때문에 정답과 시간초과가 갈릴 수 있는지가 궁금합니다.
같은 시간복잡도를 가진 코드를 여러 번 제출 끝에 그냥 운좋게 한 번 맞은 것인지, 아니면 진짜 +연산 횟수 때문에 시간초과가 난 것인지 확실하지 않아서 올린 질문입니다.
rkdgh98 2년 전
두 코드의 유일한 차이는 while문 조건입니다.
위 코드에서는 while문 종료 조건을 boxes 리스트가 비었을 경우로 두었고,
아래 코드는 while문의 종료 조건을 doneCount라는 처리된 상자 개수를 의미하는 변수가 총 상자 개수와 같아 질 때로 설정했습니다.
위 코드는 정답을 받았고, 아래 코드는 시간 초과가 발생했습니다.
요지는 아래 코드처럼 단순히 doneCount++;코드 한 줄 만으로 정답 / 시간초과가 충분히 갈릴 수 있는 상황인지 궁금합니다.
제 생각은 이 덧셈 연산이 많아봤자 상자의 최대 개수인 10000을 넘지 않는 것 같은데, 어떻게 시간초과로 갈리는 것인지 이해가 가지 않아서 질문 드립니다.
또는 그 외에 제 코드에서 시간이 많이 걸리는 부분을 지적해주시면 감사드리겠습니다.