λ°±μ€€

λ°±μ€€ 2941 ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³ - 파이썬, μžλ°”

stoneeee 2022. 11. 26. 21:32

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

 

2941번: ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³

μ˜ˆμ „μ—λŠ” μš΄μ˜μ²΄μ œμ—μ„œ ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³μ„ μž…λ ₯ν•  μˆ˜κ°€ μ—†μ—ˆλ‹€. λ”°λΌμ„œ, λ‹€μŒκ³Ό 같이 ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³μ„ λ³€κ²½ν•΄μ„œ μž…λ ₯ν–ˆλ‹€. ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³ λ³€κ²½ č c= Δ‡ c- dΕΎ dz= Δ‘ d- lj lj nj nj š s= ΕΎ z=

www.acmicpc.net

 

 

μ˜μ–΄ μ•ŒνŒŒλ²³μ€ μ•ŒνŒŒλ²³ ν•˜λ‚˜μ˜ 길이가 1이닀. λ”°λΌμ„œ "abcde"μ—μ„œ μ•ŒνŒŒλ²³μ˜ κ°œμˆ˜λŠ” λ¬Έμžμ—΄μ˜ 길이와 λ™μΌν•œ 5이닀.

ν•˜μ§€λ§Œ ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³μ€ 길이가 1~3μ΄λ―€λ‘œ 이λ₯Ό κ³ λ €ν•΄μ„œ 계산해주어야 ν•œλ‹€.

 

 

예제 1번인 "ljes=njak"의 κ²½μš°μ—λŠ”

lj, e, s=, nj, a, k 6개의 μ•ŒνŒŒλ²³μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ 있고,

 

예제 2번인 "ddz=z="의 κ²½μš°μ—λŠ”

d, dz=, z= 3개의 μ•ŒνŒŒλ²³μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.

 

 

주어진 ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³λ“€μ„ 배열에 λ‹΄μ•„λ‘” λ’€, ν•˜λ‚˜μ”© λ¬Έμžμ—΄μ— μ‘΄μž¬ν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.

μ‘΄μž¬ν•œλ‹€λ©΄ ν•΄λ‹Ή μ•ŒνŒŒλ²³μ„ ν†΅μ§Έλ‘œ "!"둜 바꿔버린닀.

λͺ¨λ“  ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³μ„ ν™•μΈν–ˆλ‹€λ©΄ λ³€ν™˜λœ λ¬Έμžμ—΄μ˜ 길이가 전체 μ•ŒνŒŒλ²³μ˜ κ°œμˆ˜μ΄λ‹€.

 

이 λ¬Έμ œμ—μ„œ 제일 μœ μ˜ν•΄μ•Ό ν•  것은 "dz="와 "z="이닀.

λ§Œμ•½ "z="λΆ€ν„° ν™•μΈν•œλ‹€λ©΄ "dz=" μ•ŒνŒŒλ²³μ„ λ‹€ μ²΄ν¬ν•˜μ§€ λͺ»ν•  수 μžˆμœΌλ―€λ‘œ κΌ­ "dz=" λ¨Όμ € 확인해주어야 ν•œλ‹€.

 

 

 

<파이썬 μ½”λ“œ>

alphabets = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']

word = input()
for alphabet in alphabets:
    word = word.replace(alphabet, "!")

print(len(word))

 

<μžλ°” μ½”λ“œ>

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        String[] ref = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};
        String word = sc.nextLine();
        
        for (int i = 0; i < ref.length; i++) {
            word = word.replaceAll(ref[i], "!");
        }
        System.out.println(word.length());
    }
}