본문 바로가기
백준 풀이

[백준 풀이_Java] 2941 크로아티아 알파벳

by happyhelen 2021. 10. 31.

 

 

 

처음 생각

 

처음에는 if 문을 사용해서 크로아티아 알파벳인지 여부를 확인하는 식으로 생각했는데

 

그냥 크로아티아 알파벳 6개를 다른 특수문자로 대체하고 난 후의 문자열 길이를 세는 간단한 방법을 이용해 풀었다

 

그런데 찾아보니 먼저 생각했던 대로 푸는 방법도 있어서 그 방법으로도 풀어보았다

 

 

 

 

내가 푼 방법

 

코드만 봐도 이해가 가서 설명은 굳이 하지않겠다!

 

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 sentence = br.readLine();
		
		sentence= sentence.replace("c=", "*");
		sentence=sentence.replace("c-", "*");
		sentence=sentence.replace("dz=", "*");
		sentence=sentence.replace("d-", "*");
		sentence=sentence.replace("lj", "*");
		sentence=sentence.replace("nj", "*");
		sentence=sentence.replace("s=", "*");
		sentence=sentence.replace("z=", "*");
		
		System.out.println(sentence.length());
	}
}

 

 

 

 

다른 풀이

 

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 sentence = br.readLine();
		int cnt = 0;
		
		for(int i=0; i<sentence.length(); i++) {
			if(sentence.charAt(i)=='c' && i<sentence.length()-1) {
				if(sentence.charAt(i+1) == '=' || sentence.charAt(i+1) == '-') {
					i++;
				}
			}
			else if(sentence.charAt(i)=='d' && i<sentence.length()-1) {
				if(sentence.charAt(i+1)=='-') {
					i++;
				}
				else if(sentence.charAt(i+1)=='z' && i<sentence.length()-2) {
					if(sentence.charAt(i+2)=='=') {
						i+=2;
					}
				}
			}
			else if((sentence.charAt(i)=='l' || sentence.charAt(i)=='n') && i<sentence.length()-1) {
				if(sentence.charAt(i+1)=='j') {
					i++;
				}
			}
			else if((sentence.charAt(i)=='s' || sentence.charAt(i)=='z') && i<sentence.length()-1) {
				if(sentence.charAt(i+1)=='=') {
					i++;
				}
			}
			cnt++;
		}
		System.out.println(cnt);
	}

}

 

++ 하다보니까 개인적으로 if 와 else if 를 구분해서 써야 정확한 결과가 나온다는 것을 다시 배웠다

 

그렇지 않으면 계속 틀렸다고 나온다!