알고리즘/백준

2470_두 용액

베리영young 2024. 7. 3. 17:58

사용 알고리즘: 투포인터

사용 언어: java

 

package afterMiracom_0618;

import java.util.*;
import java.io.*;

public class Main_bj_2470_두용액 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		int[] liquids = new int[n];
		for (int i = 0; i < liquids.length; i++) {
			liquids[i] = sc.nextInt();
		}
		Arrays.sort(liquids);
//		System.out.println(Arrays.toString(liquids));
		//입력 끝
		
		int ansLeft = 0; int ansRight = n-1;
		int left = 0; int right = n-1;
		int tmpAns = liquids[left] + liquids[right];
		
		while(true) {
			if(left >= right) break;
			
			int mix = liquids[left] + liquids[right];
			if(Math.abs(tmpAns) > Math.abs(mix)) {
				ansLeft = left;
				ansRight = right;
				tmpAns = mix;
			}
			
			if(mix == 0 ) {
//				ansLeft = left;
//				ansRight = right;
				break;
			}
			else if(mix > 0) {
				right--;
			}
			else {
				left++;
			}
		}
		
		System.out.println(liquids[ansLeft]+" "+liquids[ansRight]);
	}

}

 

우왕 전에 못 풀었었는데 지금은 풀었다

나름 투 포인터에 대한 개념이 잡혀가나 보다