Dev.baelanche

[백준 1920] 수 찾기 본문

Data Structure & Algorithm/PS - JAVA

[백준 1920] 수 찾기

baelanche 2019. 6. 11. 21:01
반응형

 

n 배열을 오름차순으로 정렬하고 이분탐색으로 구현했다.

 

1. low, high는 각각 n배열의 최솟값, 최댓값으로 정했다.

2. mid 위치의 값과 현재 선택한 m 배열의 값을 비교하여 low, high 를 바꿔준다.

 

public class Main {
    
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int a[] = new int[n];
        st = new StringTokenizer(br.readLine());
        for(int i=0; i<n; i++)
            a[i] = Integer.parseInt(st.nextToken());
        Arrays.sort(a);
        
        st = new StringTokenizer(br.readLine());
        int m = Integer.parseInt(st.nextToken());
        int b[] = new int[m];
        st = new StringTokenizer(br.readLine());
        for(int i=0; i<m; i++)
            b[i] = Integer.parseInt(st.nextToken());
        
        for(int i=0; i<m; i++) {
            int low = 0;
            int high = n;
            while(low + 1 < high) {
                int mid = (low + high)/2;
                if(b[i] > a[mid])
                    low = mid;
                else if(b[i] < a[mid])
                    high = mid;
                else {
                    low = mid;
                    break;
                }
            }
            bw.write(a[low] == b[i] ? 1 + "\n" : 0 + "\n");
        }
        bw.flush();
    }
}
반응형

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

[백준 14503] 로봇 청소기  (0) 2019.06.11
[백준 14501] 퇴사  (0) 2019.06.11
[백준 1963] 소수 경로  (0) 2019.06.10
[백준 10551] STROJOPIS  (0) 2019.06.10
[백준 3486] Adding Reversed Number  (0) 2019.06.10
Comments