psj1028   3년 전

여러 테스트 케이스를 수행해봤고 시간초과가 나왔습니다.

의심되는 부분은 arr.sort(reverse=Ture) 와

arr.reverse()인데.. 

혹시 이외에 제가 놓친 시간 복잡도가 있을까요?

아래는 제가 생각한 문제 풀이입니다.

1. 내림차순으로 정렬

2. 음수가 있는지 확인하고 있을 경우 끝의 두 수를 pop하여 곱해서 양수로 만든 후 ans에 더함

3.다시 역순으로 배치 

4. 반복문을 돌며 최대한 끝의 두 수를 pop하여 곱한 후  업데이트

- 이 때 곱하지 않아야 하는 케이스인 0, 1에 대해서 예외처리 완료.

- 음수가 1개 남아 있는 경우와 0이 같이 있는 경우 0과 음수를 곱하는 예외처리 완료.


어떤 부분에서 시간초과가 나는지 도저히 모르겠습니다..

코드를 10번정도 수정했는데 어렵네요 ㅠㅠ

sort의 시간복잡도도 O(n*logn) 이고 reverse는 O(n)이며, pop은 O(1)로 알고 있습니다..




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