https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
해석 및 팁
이 문제는 먼저 물이 새는 곳을 배열에 입력받은 후 오름차순으로 정렬해 줍니다. 그다음 배열의 첫 번째 값을 시작점으로 해서 시작점과 그다음 물이 새는 곳이 l로 막이 지면 continue 해주면 되고 막아지지 않으면 count++을 한 뒤 시작점을 그다음 물이 새는 곳으로 해서 반복해 주면 됩니다.
Java 코드
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = 1;
int n = sc.nextInt();
int l = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int start = arr[0];
for(int i = 1; i < n; i++) {
if(arr[i] < start + l) continue;
else {
count++;
start = arr[i];
}
}
System.out.println(count);
}
}
'백준' 카테고리의 다른 글
백준 17626 Four Squares(Java) (0) | 2023.02.03 |
---|---|
백준 1735 분수 합(Java) (0) | 2023.02.03 |
백준 11478 서로 다른 부분 문자열의 개수(Java) (0) | 2023.02.03 |
백준 1935 후위 표기식2(Java) (0) | 2023.02.03 |
백준 10451 순열 사이클(Java) (0) | 2023.02.03 |