15565번: 귀여운 라이언
꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의
www.acmicpc.net
처음에는 start, end 따로따로 관리하는 방식으로 하고 싶었으나 라이언의 위치가 들어있는 부분을 모아서 ArrayList에 넣어두면 고려할게 훨씬 줄어든다.
package Two_Pointers;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Baekjoon_15565_귀여운라이언 {
static int N, k;
static int[] arr;
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());
arr = new int[N];
ArrayList<Integer> lion = new ArrayList<>();
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
if(arr[i]==1) lion.add(i);
}
int ans = Integer.MAX_VALUE;
if(lion.size() < k) {
System.out.println(-1);
}
else {
for(int i = 0; i <= lion.size() - k; i++) {
ans = Math.min(ans, lion.get(i+k-1) - lion.get(i)+1);
}
System.out.println(ans);
}
}
}
'알고리즘 > BAEKJOON' 카테고리의 다른 글
| 1922 네트워크 연결_Prim (0) | 2021.07.04 |
|---|---|
| 21921 블로그_Sliding Window (0) | 2021.06.29 |
| 2531 회전초밥_Sliding Window (0) | 2021.06.28 |
| 3273 두 수의 합_Two Pointers (0) | 2021.06.26 |
| 2018 수들의 합5_Two Pointers (0) | 2021.06.25 |