[백준] 두 용액(자바)
알고리즘 문제 풀이를 블로그에 올리는 이유는 풀이, 코드를 기록하기 위함이니
앞으로 문제를 다 긁어오기보다 링크만 두고 풀이가 잘 보이도록 포스팅 할 예정입니다!
📄 문제
👩💻 풀이
1. 문제 이해
이 문제는 주어진 수열 중 두 수를 더하여 가장 0에 가까운 조합을 만들어내고, 해당 조합의 숫자를 오름차순으로 출력하는 문제이다.
2. 풀이
이중 반복문을 쓰지 않고 투 포인터를 사용하면 간단하게 풀 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
//twoPointer
int p1 = 0;
int p2 = N-1;
int fit = Integer.MAX_VALUE;
String answer = “ “;
Arrays.sort(arr);
while(p1 < p2) {
int sum = arr[p1] + arr[p2];
if(Math.abs(sum) < fit) {
fit = Math.abs(sum);
answer = arr[p1] + " " + arr[p2];
}if(sum > 0) {
p2--;
}else {
p1++;
}
}
System.out.println(answer);
}
}
Author And Source
이 문제에 관하여([백준] 두 용액(자바)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@geesuee/백준-두-용액자바저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)