새발블로그
[백준/Java] 2467 용액 본문
문제
https://www.acmicpc.net/problem/2467
풀이방법
0과의 절댓값으로 가장 가까운지 판단하면서 left, right 값 저장
풀이
import java.util.*;
import java.io.*;
import java.lang.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i<N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int left = 0;
int right = N-1;
int first = 0;
int second = 0;
int closeToZero = Integer.MAX_VALUE;
while (left<right) {
int sum = arr[left] + arr[right];
if (sum == 0 ) {
first = left;
second = right;
break;
}
if (Math.abs(closeToZero)>=Math.abs(sum)) {
closeToZero = Math.abs(sum);
first = left;
second = right;
}
//양수일 때 합은 작아져야하고 음수일때 합은 커져야함
if (sum>0) {
right--;
} else {
left ++;
}
}
System.out.println(arr[first]+" "+arr[second]);
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
| [백준/Java] 10026 적록색약 (0) | 2025.07.01 |
|---|---|
| [백준/Java] 1260 DFS와 BFS (0) | 2025.07.01 |
| [백준/Java] 나무 자르기 (0) | 2025.07.01 |
| [백준/Java] 10816 숫자 카드 2 (0) | 2025.07.01 |
| [백준/Java] 15649 N과 M(1) (0) | 2025.07.01 |