백준/15001 - 20000

[백준] 18129번 : 이상한 암호코드(JAVA)

lms0806 2021. 8. 15. 15:39
728x90
반응형

https://www.acmicpc.net/problem/18129

 

18129번: 이상한 암호코드

가톨릭대학교에 살고 있는 고양이 황톨릭은 이웃집 고양이 엄컴공을 좋아한다. 엄컴공은 알파벳으로만 이루어진 문자열을 이상한 암호로 바꾸는 일을 하고 있다. 이상한 암호로 바꾸기 위해선

www.acmicpc.net

풀이

구간이 다음 수 이상이면 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
반응형