Java

[백준 1911] 흙길 보수하기 (JAVA)

iheeeee6-6 2023. 4. 18. 13:57
728x90

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

 

1911번: 흙길 보수하기

어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1 <= N <= 10,000) 개의 물웅덩이가 생겼다. 월드학원은 물웅덩이를 덮을 수 있는 길이 L (L은 양의 정수)

www.acmicpc.net

 

 

객체를 생성하여 ArrayList에 담고, 시작번호로 정렬해준다!

그리고 널빤지 크기만큼 더해서 널빤지가 필요한 위치를 구분한다.

간단하게 해결~!

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {

	static class Dot implements Comparable<Dot>{
		int x, y;

		Dot(int x, int y) {
			this.x = x;
			this.y = y;
		}
		@Override
		public int compareTo(Dot d) {
			return this.x-d.y;
			
		}
	}

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int n = Integer.parseInt(st.nextToken());
		int l = Integer.parseInt(st.nextToken());

		ArrayList<Dot> list = new ArrayList<>();
		int result = 0;
		int now = 0;
		for (int i = 0; i < n; i++) {
			st = new StringTokenizer(br.readLine());
			int x = Integer.parseInt(st.nextToken());
			int y = Integer.parseInt(st.nextToken());
			list.add(new Dot(x, y));
		}

		Collections.sort(list);
		for (int i = 0; i < list.size(); i++) {
			Dot d = list.get(i);
			int x = d.x;
			int y = d.y;
			for (int j = x; j < y; j++) {
				if (now < j) {
					result++;
					now =j+l-1;
				}
			}
		}
		System.out.println(result);
	}

}

'Java' 카테고리의 다른 글

[백준 2468] 안전 영역 (JAVA)  (0) 2023.04.19
[백준 2410] 2의 멱수의 합 (JAVA)  (1) 2023.04.18
[백준 1965] 상자넣기 (JAVA)  (0) 2023.04.18
[백준 9465] 스티커 (JAVA)  (0) 2023.04.17
[백준 1890] 점프 (JAVA)  (0) 2023.04.17