https://www.acmicpc.net/problem/2470
minus[] = {-9, -3};
plus[] = {29, 50};
// 1. 음수가 존재하지 않는 경우?
// → 양수 배열에서 가장 작은 값 2개를 더한 값을 출력한다.
if(minusSize == 0) {
System.out.println(plus[0]+" "+plus[1]);
}
// 2. 양수가 존재하지 않는 경우?
// → 음수 배열에서 가장 작은 값 2개를 더한 값을 출력한다.
else if(plusSize == 0) {
System.out.println(minus[minusSize-2]+" "+minus[minusSize-1]);
}
// 3. 음수와 양수가 모두 존재하는 경우?
// → 음수에서 추출한 값을 기준으로 양수에서 추출한 값을 비교한다.
// → (1)과 (2)의 과정을 1번 실행한다.
else {
for(int i =0; i<minusSize; i++)
binarySearch(0, plusSize-1, minus[i], -1);
// 음수에서만 추출한 값과 양수에서만 추출한 값을 비교한다.
int temp;
if(minusSize>=2) {
temp = Math.abs(minus[minusSize-2]+minus[minusSize-1]);
if(temp < result) {
result = temp;
number1 = minus[minusSize-2];
number2 = minus[minusSize-1];
}
}
if(plusSize>=2) {
temp = plus[0]+plus[1];
if(temp < result) {
number1 = plus[0];
number2 = plus[1];
}
}
System.out.println(number1+" "+number2);
}