Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래머스 자바
- 프로그래머스 문자열 정렬
- SWEA
- 프로그래머스 풀이
- 자바
- COS Pro
- 큐
- java
- 백준
- 클라이언트
- 알고리즘
- Programmers
- lv0
- StringTokenizer
- 스택
- Lv1
- 스프링부트 도커 배포
- index of
- lv2
- 문자열
- 삼각형의 완성조건
- 프로그래머스
- 버퍼
- 스프링부트 도커
- 스프링부트 도커로 배포
- Stack
- 오름차순 정렬
- 이진수 변환
- 백준 N과 M 자바
- Queue
Archives
- Today
- Total
mun dev
[백준] 1191 흙길 보수하기 자바(Java) 본문
문제설명
어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1 <= N <= 10,000) 개의 물웅덩이가 생겼다. 월드학원은 물웅덩이를 덮을 수 있는 길이 L (L은 양의 정수) 짜리 널빤지들을 충분히 가지고 있어서, 이들로 다리를 만들어 물웅덩이들을 모두 덮으려고 한다. 물웅덩이들의 위치와 크기에 대한 정보가 주어질 때, 모든 물웅덩이들을 덮기 위해 필요한 널빤지들의 최소 개수를 구하여라.
입력
첫째 줄에 N과 L이 들어온다.
둘째 줄부터 N+1번째 줄까지 총 N개의 줄에 각각의 웅덩이들의 정보가 주어진다. 웅덩이의 정보는 웅덩이의 시작 위치와 끝 위치로 이루어진다. 각 위치는 0이상 1,000,000,000이하의 정수이다.
출력
첫째 줄에 모든 물웅덩이들을 덮기 위해 필요한 널빤지들의 최소 개수를 출력한다.
통과한 코드 ✅
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int l=sc.nextInt();
int arr[][]= new int[n][2];
for(int i=0; i<n; i++){
arr[i][0]=sc.nextInt();
arr[i][1]=sc.nextInt();
}
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if(o1[0]==o2[0]){ // 시작위치가 같다면 끝위치 기준 오름차순
return Integer.compare(o1[1],o2[1]);
}
//시작위치 오름차순
return Integer.compare(o1[0],o2[0]);
}
});
int cnt=0;
int range=0;
for(int i=0; i<n; i++){
if(arr[i][0]>range){ //시작위치가 범위보다 크다면
range=arr[i][0];
}
if(arr[i][1]>=range){
while(arr[i][1]>range){ // 끝위치가 범위보다 크다면
range+=l;
cnt++;
}
}
}
System.out.println(cnt);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1436 영화감독 숌 자바(Java) (0) | 2023.05.11 |
---|---|
[백준] 1802 종이접기 자바(Java) (0) | 2023.05.09 |
[백준] 7785 회사에 있는 사람 자바(Java) (0) | 2023.05.07 |
[백준] 2785 체인 자바(Java) (0) | 2023.05.07 |
[백준] 2885 초콜릿 식사 자바(Java) (0) | 2023.05.05 |