Live Today

[백준] 2902. KMP는 왜 KMP일까? (Java) 본문

알고리즘/백준 문제풀이

[백준] 2902. KMP는 왜 KMP일까? (Java)

ilivetoday 2023. 2. 12. 12:39
반응형

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

 

2902번: KMP는 왜 KMP일까?

입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드

www.acmicpc.net

 

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main_bj_2902_KMP는왜KMP일까 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String input = br.readLine();
		
		// 첫번째 문자열은 무조건 대문자이니까 result에 더함
		String result = input.charAt(0)+"";
		
		boolean flag = false; // 하이픈 바로 뒤 문자열을 체크하기 위한 flag 변수
		// 1번째 인덱스부터 마지막
		for(int i=1;i<input.length();i++) {
			char tmp = input.charAt(i); // 현재 탐색하는 문자열
			
            // 하이픈 바로 뒤 문자열이라면 result에 더하기
			if(flag) result += tmp+"";
			
			if(tmp == '-') flag = true;
			else flag = false;
		}
		
		System.out.println(result);
	}

}