본문 바로가기
Baekjoon

[백준] 2941번 크로아티아 알파벳 (Java)

by Chaewon Park 2024. 1. 31.

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

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net


문제 


알고리즘

 

1. String 배열 alph에 크로아티아 알파벳을 저장한다.

 

2. String str에 입력을 받는다.

 

3-1. for문을 크로아티아 알파벳 개수만큼 돌면서 str에 알파벳이 포함되어 있는지 확인한다. (이때, contains함수 사용)

3-2. 포함되어 있다면, 그 자리에 한 단어로 대체하기 위한 특수문자 "#"으로 대체한다. (이때, replace함수 사용)

 

4. str의 문자 개수를 출력한다.

 

Java에는 contains 함수와 replace 함수가 존재한다.

* contains( CharSequence chars)
String에 chars가 포함되었는지 판단해주는 함수
반환값 : true , false

* replace(CharSequnce target, CharSequence replacement)
String에 포함되는 target을 replacement로 변환해주는 함수
반환값 : String

 

풀이
import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String[] alph = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};

        String str = br.readLine();
        br.close();

        for(int i=0; i<alph.length; i++){
            if(str.contains(alph[i])) {
                str = str.replace(alph[i], "#");
            }
        }
        bw.write(Integer.toString(str.length()));
        bw.flush();
        bw.close();
    }
}