문제가 너무 낮설지 않았는데 이전에 풀었던 문제이다.
근데 다시 푸니까 min, max 부터 잘못 잡아서 다시 풀어도 새로웠다
// 인덱스를 찾기위해
int min = 0, max = n - 1, hap = 0;
// 두개의 숫자를 저장할 베열
int[] answer = new int[2];
while (min < max) {
int mid = Math.abs(arr[min] + arr[max]);
// 차이가 더 적으면
if (mid < hap) {
// 두개의 숫자를 재정의 해준다
hap = mid;
answer[0] = arr[min];
answer[1] = arr[max];
// 0 이 되면 종료한다
if (hap == 0) {
break;
}
}
// 더한 값이 너무 작으면 최소값을 늘려줌
if (arr[min] + arr[max] < 0) {
min += 1;
} else {
max -= 1;
}
}
이분탐색도 풀때마다 왜이렇게 새로운지 모르겠땁 -.-;;