![[BOJ 15565] 귀여운 라이언 (Java, 투 포인터)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8ycNC%2FbtsjazYoDcW%2Fg4IkpweujO2OOmXCVxbePK%2Fimg.png)

[BOJ 15565] 귀여운 라이언 (Java, 투 포인터)알고리즘/투 포인터2023. 6. 6. 15:30
Table of Contents
반응형

문제 링크
https://www.acmicpc.net/problem/15565
15565번: 귀여운 라이언
꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의
www.acmicpc.net
풀이
- 시간복잡도 O(N)
- 1 (라이언 인형) 인 경우에만 카운팅 처리를 해주고, K개이상이 되는 연속된 인형의 집합의 길이는 L, R범위로 측정
제출 코드
import java.util.*;
import java.io.*;
public class Main {
static int N, K;
static int[] A;
static void input() 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());
A = new int[N + 1];
st = new StringTokenizer(br.readLine());
for(int i = 1; i <= N; i++) {
A[i] = Integer.parseInt(st.nextToken());
}
}
static void pro() {
int ans = Integer.MAX_VALUE;
int cnt = 0;
for(int L = 1, R = 1; L < A.length; L++) {
while(R <= N && cnt < K) {
if(A[R] == 1) cnt += 1;
R += 1;
}
if(cnt == K) ans = Math.min(ans, R - L);
if(A[L] == 1) cnt -=1;
}
System.out.println(ans == Integer.MAX_VALUE ? -1 : ans);
}
public static void main(String[] args) throws Exception {
input();
pro();
}
}
반응형
'알고리즘 > 투 포인터' 카테고리의 다른 글
[BOJ 2230] 수 고르기 (Java, 투포인터) (0) | 2023.06.06 |
---|---|
[BOJ 2473] 세 용액 (Java, 투 포인터) (1) | 2023.06.06 |
[BOJ 16472] 고냥이 (Java, 투포인터) (0) | 2023.06.06 |
[BOJ 1253] 좋다 (Java, 투포인터) (0) | 2023.06.06 |
[BOJ 13144] List of Unique Numbers (Java, 투포인터) (0) | 2023.06.05 |

@leejinwoo1126 :: 천천히 하나씩
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!