Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 16926
  • 백준
  • 백준 7567
  • 백준 24039
  • Java
  • 백준 1531
  • 백준 1914
  • 백준 15312
  • 백준 3049
  • 백준 1064
  • 백준 2467
  • 백준 2343
  • 백준 16194
  • 백준 1011
  • 백준 12871
  • 백준 12605
  • 백준 7662
  • 백준 4659
  • 백준 14582
  • 자바
  • 백준 15655
  • 백준 3135
  • 백준 10709
  • 백준 2591
  • 백준 8892
  • 백준 6550
  • 백준 1747
  • 백준 15961
  • 백준 2225
  • 백준 1495
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 2470 두 용액(Java)
백준

백준 2470 두 용액(Java)

2023. 1. 30. 11:55

https://www.acmicpc.net/problem/2470

 

2470번: 두 용액

첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 투포인터를 활용하면 쉽게 풀 수 있습니다. 먼저 배열에 수를 넣은 후 정렬 합니다. 그다음 left를 0, right를 n-1로 정한 다음 두 배열의 합이 최소일 경우 그 값을 저장하고 합이 0보다 작거나 같은 경우에는 l++ 큰 경우에는 r-- 을 해주면 됩니다.

 


 

Java 코드

 


import java.io.*;
import java.util.*;

public class Main {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    int n = Integer.parseInt(br.readLine());
    int[] arr = new int[n];
    int min = Integer.MAX_VALUE;
    int l = 0;
    int r = n - 1;
    int num1 = 0;
    int num2 = 0; 

    StringTokenizer st = new StringTokenizer(br.readLine());

    for(int i = 0; i < n; i++) {
      arr[i] = Integer.parseInt(st.nextToken());
    }

    Arrays.sort(arr);

    while(l < r) {
      int diff = Math.abs(arr[l] + arr[r]);
      
      if(diff < min) {
        min = diff;
        num1 = arr[l];
        num2 = arr[r];
      }
        
      else if(arr[l] + arr[r] > 0) r--;
      else if(arr[l] + arr[r] <= 0) l++;
    }

    System.out.println(num1+" "+num2);
  }
}

'백준' 카테고리의 다른 글

백준 1929 소수 구하기(Java)  (0) 2023.01.30
백준 1463 1로 만들기(Java)  (0) 2023.01.30
백준 9507 Generations of Tribbles(Java)  (0) 2023.01.30
백준 2491 수열(Java)  (1) 2023.01.30
백준 2776 암기왕(Java)  (0) 2023.01.30
    '백준' 카테고리의 다른 글
    • 백준 1929 소수 구하기(Java)
    • 백준 1463 1로 만들기(Java)
    • 백준 9507 Generations of Tribbles(Java)
    • 백준 2491 수열(Java)
    Park DJ
    Park DJ

    티스토리툴바