알고리즘문제풀이/백준
[BOJ]2467_용액_Java
초보개발자..
2021. 7. 10. 18:32
--문제--
https://www.acmicpc.net/problem/2467
2467번: 용액
첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 -
www.acmicpc.net
--문제접근--
용액의수N이 입력되고 N개의 정수가 빈칸을 사이에두고 오름차순으로 입력되어지니
생각이난 것은 시작점을 지정하고 그수와 비교되는 수를끝에서부터 차근차근 내려오는식으로 접근하면 어떨가? 에서 시작 되었습니다.
package Class5;
import java.util.Arrays;
import java.util.Scanner;
public class BOJ_2467_용액 {
//문제접근
//용액의수N이 입력되고 N개의 정수가 빈칸을 사이에두고 오름차순으로 입력되어지니
//생각이난 것은 시작점을 지정하고 그수와 비교되는 수를끝에서부터 차근차근 내려오는식으로 접근하면 어떨가? 에서 시작 되었습니다.
//이러한 과정을 진행하면서 temp가 ans보다 작다면 갱신하는 식으로 진행합니다
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
long[] arr=new long[N];
for(int i=0;i<N;i++) {
arr[i]=sc.nextLong();
}
long ans=Integer.MAX_VALUE;
int start=0;
int end=N-1;
long[] ans1=new long[2];
while(start<end) {
long sum=arr[start]+arr[end];
if(ans>Math.abs(sum)) {
ans=Math.abs(sum);
ans1[0]=arr[start];
ans1[1]=arr[end];
}
if(sum<0)start++;
else end--;
}
System.out.println(ans1[0]+" "+ans1[1]);
}
}