728x90
반응형
https://www.acmicpc.net/problem/18129
풀이
구간이 다음 수 이상이면 1 아니면 0, 한번 체크했던 구간이면 pass해서 출력하는 방식입니다.
이미 지나갔던 구간인지 알파벳 수인 26으로 boolean 배열을 통해 체크하면 됩니다.
마지막 글자까지 구별해야해서 마지막에 " "으로 글자를 추가해줍니다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String s = st.nextToken().toLowerCase() + ' ';
int n = Integer.parseInt(st.nextToken());
boolean[] alpha = new boolean[26];
char c = s.charAt(0);
int count = 1;
StringBuilder sb = new StringBuilder();
for(char ch : s.toCharArray()) {
if(ch == c) {
count++;
}
else {
if(!alpha[c - 'a']) {
sb.append(count >= n ? 1 : 0);
alpha[c - 'a'] = true;
}
c = ch;
count = 1;
}
}
System.out.print(sb);
}
}
728x90
반응형
'백준 > 15001 - 20000' 카테고리의 다른 글
[백준] 16916번 : 부분 문자열(JAVA) (0) | 2021.08.26 |
---|---|
[백준] 17298번 : 오큰수(JAVA) (0) | 2021.08.17 |
[백준] 18937번 : 왕들의 외나무다리 돌게임(JAVA) (0) | 2021.08.11 |
[백준] 15926번 : 현욱은 괄호왕이야!!(JAVA) (0) | 2021.07.30 |
[백준] 15904번 : UCPC는 무엇의 약자일까?(JAVA) (0) | 2021.07.21 |
댓글