‡ CODING TEST STUDY ‡/º 백준

[백준 | Java Silver IV] (#1920) 수 찾기

Trudy | 송연 2024. 7. 22. 16:34

문제

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


접근

ArrayList를 사용하면 시간 초과가 뜨고, HashSet을 이용해서 빠르게 탐색해야 통과 됐던 문제이다. 

 

 

첫번째 제출 - ArrayList 사용, 시간 초과

package week12.baek.july23.baek;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class S1920 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        List<Integer> A = new ArrayList<>();
        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) {
            A.add(Integer.parseInt(st.nextToken()));
        }


        int m = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < m; i++) {
            int t = Integer.parseInt(st.nextToken());

            if(A.contains(t)) System.out.println(1);
            else System.out.println(0);
        }

    }
}

 

최종 코드 - HashSet 이용

package week12.baek.july23.baek;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class S1920 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        Set<Integer> A = new HashSet<>();
        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) {
            A.add(Integer.parseInt(st.nextToken()));
        }


        int m = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < m; i++) {
            int t = Integer.parseInt(st.nextToken());

            if(A.contains(t)) System.out.println(1);
            else System.out.println(0);
        }

    }
}