백준_10815_숫자 카드

임정민·2023년 1월 31일
3

알고리즘 문제풀이

목록 보기
31/173
post-thumbnail

코딩테스트 연습 스터디 진행중 입니다. ✍✍✍
Notion : https://www.notion.so/1c911ca6572e4513bd8ed091aa508d67

문제

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

[나의 풀이]

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;

public class Correct {
	
    // 이분 탐색
    static void binarySearch(int[] mycard, int x, BufferedWriter bw) throws IOException {
        int low = 0;
        int high = mycard.length - 1;
        int mid;
        while (low <= high) {

            mid = (low + high) / 2;

            if (mycard[mid] == x) {
                bw.write("1 ");
                return;
            }

            else if (x < mycard[mid]) {
                high = mid - 1;
            }

            else {
                low = mid + 1;
            }

        }

        bw.write("0 ");
    }

    public static void main(String[] args) throws NumberFormatException, IOException {

        // 입력 받기
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int N = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());

        int[] mycard = new int[N];
        for (int i = 0; i < N; i++) {
            mycard[i] = Integer.parseInt(st.nextToken());
        }

        int M = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());

        int[] check = new int[M];
        for (int i = 0; i < M; i++) {
            check[i] = Integer.parseInt(st.nextToken());
        }

        // 이진 탐색을 실행하기 위해서는 
        // 자료구조가 정렬 되어있어야함
        Arrays.sort(mycard);
        for (int i = 0; i < M; i++) {
            binarySearch(mycard, check[i], bw);
        }

        bw.flush();

    }

}

이분 탐색 문제입니다!

이분탐색 알고리즘은 'Do it 자료구조와 함께 배우는 알고리즘 입문' 1회독하며 배운 개념이라 수월하게 풀 수 있었습니다!💯💯💯

감사합니다!🐕🐕🐕

profile
https://github.com/min731

1개의 댓글

comment-user-thumbnail
2023년 2월 2일

👍

답글 달기