카테고리 없음

백준 2776 - 암기왕 JAVA 실버 4

_hanbxx_ 2024. 3. 22. 13:18
728x90

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

 

2776번: 암기왕

연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며,

www.acmicpc.net

 

Arrays라이버리의 BinarySearch에 대해 알면 쉽게 풀 수 있는 문제이다

다만, 시간 초과가 떠서 

      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
...
   br.close();
   bw.close();
   
...

        for (int a : two) {
            if (Arrays.binarySearch(one, a) >= 0){
                bw.write("1\n");
            } else {
                bw.write("0\n");
            }
        }
...


BufferedWriter에 대한 문법에 대해 공부를 해보는 시간이었다

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int one = Integer.parseInt(br.readLine());
            int[] oneArr = new int[one];
            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int j = 0; j < one; j++) {
                oneArr[j] = Integer.parseInt(st.nextToken());
            }
            int two = Integer.parseInt(br.readLine());
            int[] twoArr = new int[two];
            st = new StringTokenizer(br.readLine());
            for (int t = 0; t < two; t++) {
                twoArr[t] = Integer.parseInt(st.nextToken());
            }
            printAll(oneArr, twoArr, bw);
        }

        br.close();
        bw.close();
    }

    public static void printAll(int[] one, int[] two, BufferedWriter bw) throws IOException {
        Arrays.sort(one);

        for (int a : two) {
            if (Arrays.binarySearch(one, a) >= 0){
                bw.write("1\n");
            } else {
                bw.write("0\n");
            }
        }
    }
}
728x90