질문을 잘 이해 못하겠는데, 제가 이해한 게 맞나요?
질문자님은 1600만씩 두 번을 넣더라도 1초를 넘어야 하지 않아야 한다고 생각하는데, 왜 89초나 걸렸는지 궁금하시다는 건가요?
7453번 - 합이 0인 네 정수
네 맞습니다...
심지어 같이 푼 사람은 합의 값을 양 벡터에 넣어 sort 과정까지 거친 후에 탐색을 전부 해도 전체 1,000ms를 조금 넘는 결과가 나왔네요...
다른 자료구조 이용해 풀어 보겠습니다...
댓글을 작성하려면 로그인해야 합니다.
supergrammer 4년 전
주어진 문제에서 unordered_map을 이용해 답을 도출하고자 했습니다.
key 값이 a + b에 해당하는 해시 테이블 value 값을 1씩 증가시키고,
c, d 또한 똑같이 했습니다.
입력이 4천개인 직접 만들어 실험해 본 결과,
input, vector 삽입인 ipt() 함수에서 4ms,
a + b, c + d 값을 unorderd_map에 저장하는 mrg() 함수에서 89,000ms,
값을 도출하는 arrs() 에서 1ms (해시 테이블에 값이 몇 개 없어서 적게 나왔지만, O(n^2)을 넘지 않습니다.
가 나왔습니다.
문제는 mrg 함수에서 맵의 삽입에 O(n * n)이 나와야 하는데,
16,000,000을 두번 삽입하는 과정에서도 많이 쳐줘야 1초를 넘지 않습니다...
이유를 알고 싶습니다.
사용된 테스트케이스는
4000
-1 -1 1 1
...
입니다.