CS/Algorithm

[ JAVA / 백준 : 2776 ] 암기왕

yujindonut 2021. 8. 16. 14:55
728x90

풀이

첫번째 적은 N개의 숫자중에 수첩2번의 숫자가 존재하면 1 없으면 0 / hashset을 사용해줬다

근데 scanner사용하고 println사용하니까 

계속 시간초과나서 bufferedreader로 바꿔서 사용해줌


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;

public class 암기왕 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        StringBuilder sb = new StringBuilder();
        int T = Integer.parseInt(st.nextToken());

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

            int m = Integer.parseInt(br.readLine());
            st = new StringTokenizer(br.readLine());
            for(int i = 0; i < m; i++) {
                int num = Integer.parseInt(st.nextToken());
                if(hs.contains(num)) {
                    sb.append("1\n");
                }else {
                    sb.append("0\n");
                }
            }
        }
        System.out.println(sb.toString());
    }
}
728x90