1 λΆ„ μ†Œμš”

πŸ“ [S5_2941] ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³

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 str = br.readLine();

        int res = 0;

        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);

            // 문자 μ‹œμž‘μ΄ c κ³  ν¬κΈ°λŠ” λ²—μ–΄λ‚˜μ§€ μ•Šμ„ λ•Œ ( λ‹€μŒ κ²ƒκΉŒμ§€ μ²΄ν¬ν•˜κΈ° λ•Œλ¬Έμ— -1 )
            if (c == 'c' && i < str.length() - 1) {
                // c=, c-
                if (str.charAt(i + 1) == '=' || str.charAt(i + 1) == '-') {
                    // 2κΈ€μžμ— ν•œ μ•ŒνŒŒλ²³μ΄κΈ° λ•Œλ¬Έμ— i++
                    i++;
                }
            }

            // d-
            else if (c == 'd' && i < str.length() - 1) {
                if (str.charAt(i + 1) == '-') {
                    i++;
                } else if (str.charAt(i + 1) == 'z' && i < str.length() - 2) {
                    // dz=
                    if (str.charAt(i + 2) == '=') {
                        i += 2;
                    }
                }
            }


            // lj, nj
            else if ((c == 'l' || c == 'n') && i < str.length() - 1) {
                if (str.charAt(i + 1) == 'j') {
                    i++;
                }
            }

            // s=, z=
            else if ((c == 's' || c == 'z') && i < str.length() - 1) {
                if (str.charAt(i + 1) == '=') {
                    i++;
                }
            }

            // μ•ŒνŒŒλ²³ 개수 + , λ³€κ²½ν•  수 μžˆλŠ” μ•ŒνŒŒλ²³μ΄ μ•„λ‹Œ 것듀도 +
            res++;
        }
        System.out.println(res);
    }
}

πŸ€” λ‚˜μ˜ 생각

λ¬Έμžμ—΄ λ§ˆλ‹€ 각각 쑰건을 μ£Όμ–΄ μΉ΄μš΄νŒ…μ„ ν•΄μ£Όμ—ˆλ‹€.
거의 2κ°œκ°€ ν•˜λ‚˜μ˜ μ•ŒνŒŒλ²³μ΄ λ˜μ–΄μ„œ i++을 ν•΄μ£Όλ©° 수λ₯Ό λ§žμΆ°μ£Όμ—ˆλ‹€.
그리고 뒀에 것을 κ²€μ‚¬ν•˜λ―€λ‘œ λ°°μ—΄μ˜ 크기 쑰건도 μ£Όμ—ˆλ‹€.