https://www.acmicpc.net/problem/20922
나의풀이
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int answer=0;
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int[] arr= new int[n]; //수열을 저장할 배열
st = new StringTokenizer(br.readLine());
for(int i=0;i<n; i++){
arr[i]=Integer.parseInt(st.nextToken());//수열을 배열에 넣기
}
//투포인터 이용하기
int start=0, end=0;
int[] cnt= new int[100001]; //수열의 범위가 100000이하임
while(end < n){//수열의 최대 길이 안에서 반복
while(end < n && cnt[arr[end]] + 1 <= k ){
cnt[arr[end]]++;
end++;
}
int len=end-start; //최장 연속 부분 수열의 길이
answer=Math.max(answer,len);
cnt[arr[start]]--;
start++;
}
bw.write(Integer.toString(answer));
bw.flush();
br.close();
bw.close();
}
}
'코테풀이' 카테고리의 다른 글
[백준] BOJ - 5972 택배 배송 자바 java (골드5) (0) | 2023.03.13 |
---|---|
[백준] BOJ - 14719 빗물 java 자바 (골드5) (0) | 2023.03.13 |
[백준] BOJ - 14940 쉬운 최단거리 자바 java (실버1) (0) | 2023.03.10 |
[백준] BOJ - 19637 IF문 좀 대신 써줘 자바 java (실버 3) (2) | 2023.03.08 |
[백준] BOJ - 2531 회전 초밥 자바 java (실버1) (0) | 2023.03.02 |