단순하게 3중for문으로 돌리면 조합의 수가 많아진다. 배열을 정렬하고, 배열에서 0의 위치를 찾은 다음 (0이 없으면 0보다 바로 작은 숫자가 있는 위치) 3중for문(포인터(인덱스) 3개)을 사용한다. 포인터 i, j에 있는 숫자의 합(number[i] + number[j])(찾고자 하는 수)의 반대 부호가 0보다 크거나 같으면, max(포인터 j보다 한칸 다음 위치, 0의 위치)부터 포인터 k를 사용해 찾아나가며 합이 0이 될 때 answer를 증가시켜나간다. 가장 바깥 for문은 조건 (i < number.length-2 && number[i] <= 0)을 사용해서 세 수 모두 양의 정수인 경우는 제외한다. import java.util.*; import java.math.*; class Solution { public int solution(int[] number) { int answer = 0; // number array must be sorted. Arrays.sort...
원문링크 : 프로그래머스 삼총사(최적화?) - java