https://www.acmicpc.net/problem/2473 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 이분 탐색, 투 포인터 문제다. '두 용액'의 업그레이드 버전이고 '합이 0' 의 업그레이드 버전이기도 하다. 세 용액의 특성값 합이 0에 가까워야 한다. 문제를 보자마자 떠올랐던 점은 1. 데이터 정렬 2. 투 포인터는 이중 for문으로 활용 3. 다른 하나의 값은 (투 포인터가 가리키는 값들의 합) * (-1) (sum)에 가까운 수 3. 이분 탐색으로 나머지 하나의 값 ..
Algorithm/Binary Search
https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 이분 탐색과 두 포인터 문제다. 입력 받은 용액들의 특성값을 정렬한 후 양 사이드에서부터 합을 계산한다. 0과 가장 가까운 합을 찾는 것이기 때문에 합의 절댓값이 가장 작은 경우를 찾으면 된다. 두 용액의 합이 음수면 더 큰 용액들을 더한다. 즉, 왼쪽의 포인터를 오른쪽으로 한 칸 옯긴다. 두 용액의 합이 양수면 더 작은 용액들을 더한다. 즉, 오른쪽의 포인터를 ..