백준 문제풀이/문자열

2941. 크로아티아 알파벳 (자바, Java)

뮤츠 2022. 9. 13. 02:46

이거 많이 빡셌습니다. 앞 문제에서 언급한대로 불규칙성을 넣었는데,

첫번째로, 다 두글자인데 dz= 하나만 세글자라는 점, dz=과 z=이 겹쳐서, 잘못 짜면 이걸 같이 카운팅해버립니다.

 

앞선 문제의 교훈으로, 비교적 무식하고 우직한 방법으로 풀었습니다.

 

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

public class Main {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String str = br.readLine();
		int count = str.length();
		
		for (int i = 0; i < str.length()-1; i++) {
			
			if (str.charAt(i) == 'c') {

				if (str.charAt(i+1) == '=') {

					count--;
					continue;

				} else if (str.charAt(i+1) == '-') {

					count--;
					continue;

				}				
			}
			
			if (str.charAt(i) == 'l' && str.charAt(i+1) == 'j') {
									
					count--;
					continue;
									
			}
			
			if (str.charAt(i) == 'n' && str.charAt(i+1) == 'j') {
									
					count--;
					continue;
					
			}
			
			if (str.charAt(i) == 's' && str.charAt(i+1) == '=') {
									
					count--;
					continue;
									
			}
			
			if (str.charAt(i) == 'z' && str.charAt(i+1) == '=') {
					
					if (i>0 && str.charAt(i-1) == 'd') {
						
						count = count - 2;
						i++;
						continue;
						
												
					} else {					
					
					count--;
					continue;
					
					}								
			}
			
			if (str.charAt(i) == 'd' && str.charAt(i+1) == '-') {
									
					count--;
					continue;
				
			}			
		}
		
		System.out.println(count);
		
	}

}