백준/15001 - 20000
[백준] 18129번 : 이상한 암호코드(JAVA)
lms0806
2021. 8. 15. 15:39
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
반응형