만약 길이 1짜리 배열을 사용한다 치면
first = 0; last = 1;이 될겁니다.
배열에 값이 target보다 작으면 first = mid+1;이 되고
first <= last 를 만족하니까 1번 인덱스에 접근하려고 하겠죠.
last = arr.length - 1; 로 넣으면 문제가 해결될겁니다.
min = Math.abs(x - (a + b));
지금 코드상 a랑 b는 배열의 크기를 나타내는 값인데 답을 구할 때 이 값을 왜 사용했는지 모르겠습니다.