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

U·2023년 3월 22일

백준

목록 보기
33/116

💻 문제


일단 이해하자🤔

  • 이 문제는 크로아티아 알파벳 뿐만 아니라 크로아티아 알파벳에 해당하지 않는 알파벳들도 세야 한다.
  • 표의 크로아티아 알파벳을 넣은 문자열 배열을 만드는데 이때 세자리를 필요로 하는 dz=는 따로 뺐다. dz= 때문에 그동안 애를 먹었기 때문에 else if문 조건으로 따로 넣어줬다. 만약 크로아티아 알파벳과 같으면 0을 넣고 count++을 하며 마지막 for문에서 0이 아닌 알파벳의 개수를 셌다.

👀 풀이

import java.io.*;

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

        String str = bfr.readLine();
        String st[] = str.split("");
        String croatia[] = {"c=", "c-", "d-", "lj", "nj", "s=", "z="};
        int count = 0;
        boolean isCroatia = false;

        for (int i = 0; i < st.length - 1; i++) {
            for (int j = 0; j < croatia.length; j++) {
                if ((st[i] + st[i + 1]).equals(croatia[j])) {
                    st[i] = "0";
                    st[i + 1] = "0";
                    count++;
                } else if ((i + 2) < st.length && (st[i] + st[i + 1] + st[i + 2]).equals("dz=")) {
                    st[i] = "0";
                    st[i + 1] = "0";
                    st[i + 2] = "0";
                    count++;
                }
            }
        }

        for (int i = 0; i < st.length; i++) {
            if(!st[i].equals("0")) {
                count++;
            }
        }

        bfw.write(String.valueOf(count));


        bfr.close();
        bfw.flush();
        bfw.close();
    }
}

아쉬웠던 점••

  • 전에 몇번 시도했으나 도저히 풀리지 않아 해결하지 못했던 문젠데 다시 풀었더니 10분만에 풀었다😮 문제를 너무 어렵게만 생각했던 탓일까 못 푼 문제들을 다시 풀어봐야겠다
profile
백엔드 개발자 연습생

0개의 댓글