알고리즘/백준
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]);
}
}
우왕 전에 못 풀었었는데 지금은 풀었다
나름 투 포인터에 대한 개념이 잡혀가나 보다