smooth waters run deep

1d-1c/BOJ

10815_숫자 카드 (JAVA)

yeon_11 2020. 9. 18. 23:03
 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

import java.util.Scanner;
import java.util.Arrays;

public class Main {
	static int N;
	static int[] num;

	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
		N = sc.nextInt();
		num = new int[N];
		for(int i=0; i<N; i++){
			num[i] = sc.nextInt();
		}
		Arrays.sort(num);

		int M = sc.nextInt();
		int[] check = new int[M];

		for(int i=0; i<M; i++){
			check[i] = sc.nextInt();
			boolean flag = having(check[i]);
			if(flag)
				System.out.print("1 ");
			else
				System.out.print("0 ");
		}
    }
    public static boolean having(int n){
		int left = 0; //인덱스 기준
		int right = N-1;
		boolean flag = false;

		while(left<=right){
			int mid = (left+right)/2;
			if(num[mid] < n)
				left = mid+1;
			else if(num[mid] > n)
				right = mid-1;
			else{
				flag = true;
				break;
			}
		}
		return flag;
	}

}

 

이분탐색 완전 기본 문제!! <1920번 수찾기> 문제랑 엄청 비슷하다

너무 기본적인 문제라 문제풀이 생각과정도 쓸필요 없음!! 호옥시 설명이 필요하다면 요기 밑에! 1920번 문제를 보면 된다.

 

[백준] 1920_수 찾기 (Silver4) (JAVA)

import java.util.Arrays; import java.util.Scanner; public class Main { static int N; static int[] num; static int M; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N =..

yeone2ee.tistory.com

 

 

'1d-1c > BOJ' 카테고리의 다른 글

2798_블랙잭 (JAVA)  (0) 2020.10.03
11729_하노이 탑 이동 순서 (JAVA)  (0) 2020.10.02
2805_나무 자르기 (JAVA) (C++)  (0) 2020.09.18
1920_수 찾기 (JAVA) (C++)  (0) 2020.09.15
2343_기타 레슨 (JAVA)  (0) 2020.09.15