Dev.baelanche

[백준 10815] 숫자 카드 본문

Data Structure & Algorithm/PS - JAVA

[백준 10815] 숫자 카드

baelanche 2019. 6. 29. 17:43
반응형

 

 

매 케이스마다 상근이의 카드 한개를 비교할 카드 배열의 길이를 반으로 쪼개며 이분탐색한다.

 

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int a[] = new int[n];
        for(int i=0; i<n; i++) a[i] = sc.nextInt();
        Arrays.sort(a);
        
        int m = sc.nextInt();
        while(m-->0) {
            int card = sc.nextInt();
            
            int left = 0;
            int right = n-1;
            
            while(left + 1 < right) {
                int mid = (left + right)/2;
                if(a[mid] <= card) left = mid;
                else right = mid;
            }
            if(left == n-2 && a[left+1] ==card) System.out.print(1);
            else System.out.print(a[left] == card ? 1 : 0);
            System.out.print(" ");
        }
    }
}

left+1 == right 일때의 경우를 잡아내지 못해서

그 부분은 하드코딩으로 예외처리 했다ㅜㅜ

반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 2903] 중앙 이동 알고리즘  (0) 2019.06.29
[백준 1057] 토너먼트  (0) 2019.06.29
[백준 1009] 분산처리  (0) 2019.06.29
[백준 2979] 트럭 주차  (0) 2019.06.29
[백준 1547] 공  (0) 2019.06.29
Comments