백준 17393 - 다이나믹롤러
알고리즘/백준

백준 17393 - 다이나믹롤러

[문제 바로가기]

 

1. 유형

이분탐색

 

2. 풀이

3. 풀이

import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(bf.readLine());
		int N = Integer.valueOf(st.nextToken());
		long arr[] = new long[N];
		long arr2[] = new long[N];
		st = new StringTokenizer(bf.readLine());
		for(int i=0; i<N; i++) {
			arr[i] = stoi(st.nextToken());
		}
		st = new StringTokenizer(bf.readLine());
		for(int i=0; i<N; i++) {
			arr2[i] = stoi(st.nextToken());
		}
		StringBuilder sb = new StringBuilder();
		for(int i=0; i<N-1; i++) {
			int left = i;
			int right = N-1;
			int idx = i;
			long val = arr[i];
			while(left <= right) {
				int mid = (left+right)/2;
				if(arr2[mid] <= val) {
					idx = mid;
					left = mid+1;
				}else {
					right= mid-1;
				}
			}
			int temp =idx - i;
			sb.append(temp).append(" ");
		}
		sb.append(0);
		System.out.println(sb.toString());
	}
	static long stoi(String s) {
		return Long.valueOf(s);
	}
}

'알고리즘 > 백준' 카테고리의 다른 글

백준 16953 - A -> B  (0) 2021.11.02
백준 5883 - 아이폰 9S  (0) 2021.10.31
백준 - 좋은 단어  (0) 2021.10.30
백준 21608 - 상어 초등학교  (0) 2021.10.15
백준 1780 - 종이의 개수  (0) 2021.10.04