https://www.acmicpc.net/problem/1449
소스코드
import java.io.*;
import java.util.StringTokenizer;
import java.util.Arrays;
public class Sanizzang {
static int N;
static int L;
static int[] hole;
static int cnt = 0;
static int position;
static int tape = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
L = Integer.parseInt(st.nextToken());
hole = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
hole[i] = Integer.valueOf(st.nextToken());
}
Arrays.sort(hole);
for (int i = 0; i < N; i++) {
position = hole[i];
if (position > tape) {
tape = position + L - 1;
cnt++;
}
}
System.out.println(cnt);
}
}
소스설명
1. 먼저 입력받은 물의 새는 곳의 위치를 정렬해준다.
2. 물의 새는 곳의 위치에 테이프가 있는지 확인하기 위해 물이 새는 곳의 위치와 tape의 위치를 확인한다
3. 만약 물의 새는 곳의 위치에 테이프가 없다면 tape의 값을 position의 값 L - 1을 대입함으로 써 다음 물의 새는 곳의 위치에 테이프가 있는지 확인할 수 있게한다.
4. 그리고 테이프의 개수를 증가시킨다.
'Algorithm(Java) > BAEKJOON' 카테고리의 다른 글
[JAVA] 백준 알고리즘 4796번 문제 풀이 (캠핑) (0) | 2021.09.25 |
---|---|
[JAVA] 백준 알고리즘 2294번 문제 풀이 (동전2) (0) | 2021.09.25 |
[JAVA] 백준 알고리즘 1463번 문제 풀이 (1로 만들기) (0) | 2021.09.24 |
[JAVA] 백준 알고리즘 2231번 문제 풀이 (분해합) (0) | 2021.09.24 |
[JAVA] 백준 알고리즘 2309번 문제풀이 (일곱 난쟁이) (0) | 2021.09.23 |