[백준] 3273번: 두 수의 합 - Java

Cherry·2023년 10월 7일
0
post-thumbnail

💬 문제 파악하기

문제 출처

수열에 있는 숫자를 더해서 x가 나오는 경우의 수를 찾는 문제입니다!
a+b=x 라면 a=x-b가 되겠죠!
set을 사용해서 x-b값이 존재하면 count를 증가시켜줍니다.
(a,b)(b,a)가 모두 count를 증가시키기 때문에 답은 나누기 2를 해주어야 합니다!

⭐️ 풀이

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

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];
        HashSet<Integer> set = new HashSet<>();

        StringTokenizer st = new StringTokenizer(br.readLine());
        for(int i=0; i<n; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
            set.add(arr[i]);
        }
        int count = 0;
        int x = Integer.parseInt(br.readLine());
        for(int i=0; i<n; i++) {
            if(set.contains(x-arr[i])) count++;
        }

        System.out.println(count/2);
    }    
}

profile
호기심 많은 백엔드 개발자입니다 😝

0개의 댓글