[백준] 16472 고냥이 - Java
지난번에 풀었던 List of Unique Numbers문제와 유사한 방식으로 풀 수 있다.
R을 가능한 만큼 보내고, R이 더 이상 갈 수 없으면 L을 움직이면서 계속해서 값을 누적시키는 방식으로 풀이하자.
import java.util.*;
import java.io.*;
public class Main{
static int[] alpha;
static int N;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
String str = br.readLine();
alpha = new int[27];
int R = 0;
int ans = 0;
for(int L = 0; L<str.length(); L++){
int len = 0;
while(R + 1 <= str.length()){
alpha[str.charAt(R) - 'a']++;
R++;
if(alpha_check()){
R--;
alpha[str.charAt(R) - 'a']--;
break;
}
}
len = R - L + 1;
ans = Math.max(ans, len);
alpha[str.charAt(L) - 'a']--;
}
System.out.println(ans-1);
}
static boolean alpha_check(){
int cnt = 0;
for(int i=0; i<27; i++){
if(alpha[i] != 0){
cnt++;
}
}
return cnt > N;
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2559 수열- Java (0) | 2022.05.08 |
---|---|
[백준] 2003 수들의 합2- Java (0) | 2022.05.08 |
[백준] 1253 좋다 - Java (0) | 2022.05.08 |
[백준] 13144 List of Unique Numbers - Java (0) | 2022.05.08 |
[백준] 1431 시리얼 번호 - Java (0) | 2022.05.06 |
댓글
이 글 공유하기
다른 글
-
[백준] 2559 수열- Java
[백준] 2559 수열- Java
2022.05.08 -
[백준] 2003 수들의 합2- Java
[백준] 2003 수들의 합2- Java
2022.05.08 -
[백준] 1253 좋다 - Java
[백준] 1253 좋다 - Java
2022.05.08 -
[백준] 13144 List of Unique Numbers - Java
[백준] 13144 List of Unique Numbers - Java
2022.05.08