Today's special moments become memories of tomorrow.

BOJ

[백준 2467번] 용액 (java)

lotus lee 2021. 3. 3. 20:30

 

 

2467번: 용액

첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 -

www.acmicpc.net

이분탐색으로 풀었다.

 

위의 예제에서 -99 -2 -1 4 98 이 주어질 때,

 

-99와 더해서 0이 되려면 99라는 수가 필요하다. 그러면 -99 보다 오른쪽에 있는 -2 1 4 98 중에서 이분탐색을 이용하여 99와 가장 가까운 수를 찾아서 -99와 더한다.  -> -99 + 98 = -1

 

그 다음, -2와 더해서 0이 되려면 2라는 수가 필요하다. -2보다 오른쪽에 있는 1 4 98 중에서 이분탐색을 통해 2와 가장 가까운 수를 찾아서 -2와 더한다. -> -2 + 4 = 2

 

-1과 더해서 0이 되려면 1이라는 수가 필요하다. 1보다 오른쪽에 있는 4 98 중에서 이분탐색을 통해

1과 가장 가까운 수를 찾아서 -1과 더한다. -> -1 + 4 = 3

 

-1, 2, 3 중에서 0과 가장 가까운 값은 -1이다.

그러므로 두 용액은 -99, 98이 된다.

 

 

소스코드 : 

 

'BOJ' 카테고리의 다른 글

[백준 2234번] 성곽 (java)  (0) 2021.03.04
[백준 9375번] 패션왕 신해빈 (java)  (0) 2021.03.03
[백준 2660번] 회장뽑기 (java)  (0) 2021.03.02
[백준 4358번] 생태학 (java)  (0) 2021.03.02
[백준 2343번] 기타 레슨 (java)  (0) 2021.03.01