일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 배포
- 크루스칼
- 피로그래밍
- BFS
- 백준
- 자바
- 그래프 탐색
- Baekjoon
- JOIN
- 프림
- db
- 구현
- SQL코딩테스트
- OrderBy
- Pirogramming
- EC2
- AWS
- 다익스트라
- GROUPBY
- 누적합
- 알고리즘
- 코딩테스트
- Java
- 최단경로
- django
- SQL
- Database
- union find
- MST
- 프로그래머스
Archives
- Today
- Total
NullNull
[백준 P14465] 소가 길을 건너간 이유 5 Java 본문
P14465 소가 길을 건너간 이유5
14465번: 소가 길을 건너간 이유 5
첫 줄에 N, K, B (1 ≤ B,K ≤ N)가 주어진다. 그 다음 B줄에는 고장난 신호등의 번호가 하나씩 주어진다.
www.acmicpc.net
문제
농부 존의 농장에 원형 길이 있다고 했지만, 길은 그뿐만이 아니다. 그 옆에 일자형 길이 있는데, 1번부터 N번까지의 번호가 붙은 횡단보도 N (1 ≤ N ≤ 100,000)개로 이루어져 있다. 교통사고를 방지하기 위해 존은 각 횡단보도에 신호등을 설치해 놓았다. 그러던 어느 날, 강력한 뇌우로 인해 몇몇 신호등이 망가졌다. 존은 연속한 K개의 신호등이 존재하도록 신호등을 수리하고 싶다. 이번에도 우리가 존을 도와주자.
입력값
첫 줄에 N, K, B (1 ≤ B,K ≤ N)가 주어진다. 그 다음 B줄에는 고장난 신호등의 번호가 하나씩 주어진다.
10 6 5
2
10
1
5
9
출력값
정상적으로 작동하는 연속 K개의 신호등이 존재하려면 최소 몇 개의 신호등을 수리해야 하는지 출력한다.
1
알고리즘
존은 연속한 K개의 신호등이 존재하도록 신호등을 수리하고 싶다.
현재 입력 값으로 주어지는 신호등들이 고장난 신호등의 인덱스이다.
K개의 길이 동안 고장난 신호등이 없어야 한다.
따라서 고장난 신호등의 개수를 누적하면서 배열에 저장하고, 시작점을 이동하면서 시작점 ~ 시작점 + K 의 구간에 가장 적은 수의 고장난 신호등의 수를 뽑아내면 된다.
코드
import java.util.*;
import java.io.*;
public class Main {
static int N, K, B;
static int[] light;
static int answer = Integer.MAX_VALUE;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
K = Integer.parseInt(st.nextToken());
B = Integer.parseInt(st.nextToken());
light = new int[N + 1];
for (int i = 0; i < B; i++) {
light[Integer.parseInt(br.readLine())] = 1;
}
for (int i = 1; i <= N; i++) {
light[i] += light[i - 1];
}
int idx = K;
while (idx <= N) {
answer = Math.min(answer, light[idx] - light[idx - K]);
idx++;
}
System.out.println(answer);
}
}
'알고리즘' 카테고리의 다른 글
[백준 P1012] 유기농 배추 Java (0) | 2022.10.03 |
---|---|
[백준 P1806] 부분합 Java (0) | 2022.10.03 |
[백준 P1753] 최단경로 Java (0) | 2022.10.02 |
[백준 P1976] 여행 가자 Java (0) | 2022.09.26 |
[백준 P10775] 공항 Java (0) | 2022.09.26 |
Comments