프로그래머스 삼총사(최적화?) - java


프로그래머스 삼총사(최적화?) - java

단순하게 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