[BJ] 2470. 두 용액.java

Jinjin·2023년 3월 27일
0
post-thumbnail

[문제]

https://www.acmicpc.net/problem/2470


[풀이]

1. n=4, {-9, -3, 29 50}

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);
			
		}
profile
BE Developer

0개의 댓글