[백준] 10815 숫자 카드 (JAVA)

leeng·2024년 5월 3일
0

간만에 좀 쉽게 풀었다!! 한 문제였는데 시간 초과가 떴다 ㅠㅠ 빠른 입출력을 사용해야하는 문제였다.. BufferedReader까지는 평소에도 사용하는데 BufferedWriter까지는 귀찮아서 맨날 시스아웃 사용했더니...

BufferedReader / BufferedWriter 사용하도록 연습하기!

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
static int[] cards;

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 N = Integer.parseInt(br.readLine());
    cards = new int[N];
    StringTokenizer st = new StringTokenizer(br.readLine());
    for (int i = 0; i < N; i++) {
        cards[i] = Integer.parseInt(st.nextToken());
    }
    Arrays.sort(cards);
    int M = Integer.parseInt(br.readLine());
    st = new StringTokenizer(br.readLine());
    for (int i = 0; i < M; i++) {
       bw.write(search(Integer.parseInt(st.nextToken())) + " ");
    }
    br.close();
    bw.flush();
    bw.close();
}

// n이 cards에 있나 찾는 함수
static int search(int n) {
    int start = 0;
    int end = cards.length - 1;

    while (start <= end) {
        int mid = (start + end) / 2;
        if (cards[mid] < n) {
            start = mid + 1;
        } else if (cards[mid] == n) {
            return 1;
        } else {
            end = mid - 1;
        }
    }
    return 0;
}

}

profile
기술블로그보다는 기록블로그

0개의 댓글