코드일기장

[백준] 2941번: 크로아티아 알파벳 본문

PS/백준

[백준] 2941번: 크로아티아 알파벳

codeStudy123 2022. 2. 25. 15:59

 

 

 

 

제목: 크로아티아 알파벳

실버5

 

 

 


문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.

크로아티아 알파벳변경
č c=
ć c-
dz=
đ d-
lj lj
nj nj
š s=
ž z=

예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.

입력

첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

출력

입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.


예제 입력 1 복사

ljes=njak

예제 출력 1 복사

6

예제 입력 2 복사

ddz=z=

예제 출력 2 복사

3

예제 입력 3 복사

nljj

예제 출력 3 복사

3

예제 입력 4 복사

c=c=

예제 출력 4 복사

2

예제 입력 5 복사

dz=ak

예제 출력 5 복사

3

 

 

 

 

🔑 코드

 

 

case1:


더보기
import java.io.*;

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

 

case2:


더보기
import java.io.*;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		String[] alphabat = { "c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z=" };
		for (int i = 0; i < alphabat.length; i++) {
			if (str.contains(alphabat[i])) {
				str = str.replace(alphabat[i], "#");
			}
		}
		System.out.println(str.length());
	}

}

 

 

 

 

 

 

 

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

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

 

 

 

 

 

 

커버사진

https://www.flaticon.com/kr/free-icon/algorithms_1753819

<a href="https://www.flaticon.com/kr/free-icons/" title="연산 아이콘">연산 아이콘  제작자: Flat Icons - Flaticon</a>

'PS > 백준' 카테고리의 다른 글

[백준] 1085번: 직사각형에서 탈출_Java  (0) 2022.02.28
[백준] 11653번: 소인수분해  (0) 2022.02.25
[백준] 2309번: 일곱 난쟁이  (0) 2022.02.23
[백준] 2908번: 상수_Java  (0) 2022.02.21
[백준] 2581번: 소수_Java  (0) 2022.02.10
Comments