Algorithms
[BOJ] 7453 합이 0인 네 정수 Java 풀이
약간 독특한 문제다. 시간 제한도 12초로 비교적 길고, 입력도 다소 독특하게 주어진다. 문제는 간단한데, 단순하게 A, B, C, D 배열의 모든 조합을 차례대로 4중 반복문을 쓰게되면 시간복잡도는 4000^4(256조)로 눈 앞이 아득해진다. 다른 방법을 찾아야 하는데, 단순히 정렬을 통해 다중 포인터를 쓰는 방법은 배열이 4개나 있기 때문에 쓰기 어렵다. 때문에 배열을 2개씩 묶어 각 합을 통해 새로운 리스트 2개를 만들어 주고, 정렬한 뒤 투 포인터를 사용해준다. 배열을 2개씩 묶으면 4000^2(1,600만)를 2번 수행하기 때문에 크지만, 나름 합리적으로 새로운 리스트를 만들어 줄 수 있겠다. 또, 새로 생성된 리스트는 길이가 최대 1,600만이 되고 정렬시 시간 복잡도는 O(N log N) ..
2021. 2. 12.