반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 상한가 이유
- 백준
- 이진우
- Python
- Programmers
- 파이썬
- 자바
- 주식
- 경제뉴스 요약
- 손경제
- 코딩테스트
- 테마주
- 손에 잡히는 경제 요약
- 알고리즘
- 이진우의 손에 잡히는 경제
- 프로그래머스
- 상한가
- java
- 경제뉴스
- 급등주
- 주식 분석
- boj
- 주식 상한가
- 급등주 분석
- 코테
- 급등 이유
- 경제
- 상한가 분석
- 손경제 요약
- 손에 잡히는 경제
Archives
- Today
- Total
Completion over Perfection
백준 2470 - 두 용액 (JAVA 자바 풀이) 본문
반응형
백준 2470 - 두 용액 (JAVA 자바 풀이)
투포인터 알고리즘으로 풀었습니다.
자세한 풀이방법은 아래와 같습니다.
1. 먼저 arr 배열에 주어진 숫자들을 long으로 받아준다.
2. Arrays.sort를 활용해서 정렬해준다.
3. 투포인터 알고리즘을 활용해서 각각 왼쪽 / 오른쪽에서 포인터 시작점을 잡아주고, 왼쪽포인터는 한칸씩 올려주고 오른쪽포인터는 한칸씩 내려주면서 비교해준다.
4. 0과 가장 가까운 숫자의 조합을 알아내야 하므로, sum 변수에 두 숫자를 합한 값을 넣어주고 0에서 sum을 뺀값에 절대값을 씌워서 가지고 있는다.
5. min 변수는 0에서 가장 가까운 숫자를 찾아내기 위한 변수
6. sum값을 도출한 뒤 왼쪽포인터를 우측으로 한칸 옮길지, 아니면 오른쪽포인터를 좌측으로 한칸 옮길지에 대한 판단은 if문을 활용해서 결정해주었다.
반례는 아래 반례를 참고해서 풀면 됩니다.
<반례>
입력
4
-3 1 2 10
출력
-3 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import java.io.*;
import java.util.*;
public class test {
static int N;
static long arr [];
static long ans1, ans2;
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
N = Integer.parseInt(br.readLine()); // 9
arr = new long [N];
st = new StringTokenizer(br.readLine());
for (int i=0; i<N; i++){
arr[i] = Long.parseLong(st.nextToken());
}
Arrays.sort(arr);
// 투 포인터 알고리즘
int left = 0;
int right = N-1;
long sum = 0;
ans1 = 0;
ans2 = 0;
long min = Long.MAX_VALUE;
while(left != right) {
sum = Math.abs(arr[left] + arr[right]);
if (sum <= min) {
ans1 = arr[left];
ans2 = arr[right];
min = sum;
}
if (Math.abs(arr[left+1] + arr[right]) < Math.abs(arr[left] + arr[right-1])){
left++;
}
else right--;
}
// 구현 완료
System.out.println(ans1 + " " + ans2);
}
}
|
cs |
반응형
'자바 (Java)' 카테고리의 다른 글
백준 13549 - 숨바꼭질3 (JAVA 자바 풀이) (0) | 2023.03.14 |
---|---|
백준 1697 - 숨바꼭질 (JAVA 자바 풀이) (0) | 2023.03.13 |
백준 1806 - 부분합 (자바 JAVA) (0) | 2023.02.25 |
프로그래머스 - K번째 수 (자바 JAVA 풀이) (0) | 2023.02.21 |
백준 20040 - 사이클 게임 (자바 JAVA) (0) | 2023.02.19 |
Comments