[Algorithm] 백준: 2941 크로아티아 알파벳(Java11)

m_ngyeong·2025년 3월 14일
0

Algorithm

목록 보기
7/8
post-thumbnail

2941 크로아티아 알파벳

크로아티아 알파벳이란?

크로아티아어에는 일부 특수 문자 조합이 하나의 알파벳으로 취급된다.
다음 8가지는 하나의 문자로 간주됌:

č -> "c="   
ć -> "c-"-> "dz="  
đ -> "d-"   
lj -> "lj"  
nj -> "nj"  
š -> "s="   
ž -> "z=" 

문제:

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

정답:

import java.util.Scanner;

public class Main{
    public static void main (String [] args){
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        scan.close(); // Scanner 닫기

        // 크로아티아 알파벳 배열
        String[] croatian = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};

        // 크로아티아 알파벳 개수 세기
        for(String cro: croatian){
            str = str.replace(cro, "*"); // 크로아티아 알파벳을 하나의 문자(*)로 대체
        }
        System.out.print(str.length());
    }
}

입출력 예시:

입력

ljes=njak

처리과정:

"ljes=njak""lj""*""nj""*""s=""*"
변환 후: "*e**k"

출력:

4

코드 설명

for (String cro : croatian) {
    str = str.replace(cro, "*");
}

for (String cro : croatian) → 향상된 for문

  • croatian 배열의 각 요소(크로아티아 알파벳)를 순서대로 cro 변수에 저장하면서 반복 실행.
첫 번째 반복: cro = "c="
두 번째 반복: cro = "c-"
세 번째 반복: cro = "dz="
...

str.replace(cro, "") → 특정 문자열을 로 변환

  • replace(old, new)
    • old: 찾을 문자열 (예: "c=")
    • new: 바꿀 문자열 (예: "*")

✅ 최종 문자열: *e**ak
✅ 최종 길이: 6

profile
ʚȉɞ

0개의 댓글