DonHurry

[Python] λ°±μ€€ 2941번 - ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³ λ³Έλ¬Έ

Problem Solving

[Python] λ°±μ€€ 2941번 - ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³

_도녁 2022. 11. 9. 20:03

πŸ“– λ¬Έμ œ

 

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

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

www.acmicpc.net

 

πŸ”Ž ν’€μ΄

μ–΄λ–»κ²Œ ν‘ΈλŠλƒμ— 따라 μ½”λ“œμ˜ 간결성이 크게 μ°¨μ΄λ‚˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. μ£Όμ–΄μ§„ λ¬Έμžμ—΄μ˜ 크기가 크지 μ•ŠκΈ° λ•Œλ¬Έμ— count ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³λ“€μ„ ν•˜λ‚˜μ”© μ„Έμ€λ‹ˆλ‹€. μ΄λ•Œ 전체 λ¬Έμžμ—΄μ˜ 합을 ꡬ해놓고, ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³ 개수만큼 λΉΌμ£ΌλŠ” μ‹μœΌλ‘œ κ΅¬ν˜„ν•©λ‹ˆλ‹€. (ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³λ“€μ€ 두 μžλ¦¬μ”© μ°¨μ§€ν•˜λ―€λ‘œ) 'dz='λŠ” '=' μ—μ„œ ν•œ 번 더 κ±ΈλŸ¬μ§€λ―€λ‘œ 총 2λ²ˆμ„ λΉΌ, μ•Œλ§žμ€ κ²°κ³Όκ°€ 좜λ ₯λ©λ‹ˆλ‹€.

 

πŸ’» μ½”λ“œ

arr = input()
print(len(arr)-sum(arr.count(x) for x in ['=', '-', 'lj', 'nj', 'dz=']))

 

λ¬Όλ‘  ν•˜λ“œμ½”λ”©μœΌλ‘œλ„ ν’€ 수 μžˆμŠ΅λ‹ˆλ‹€..

λ’€μ—μ„œλΆ€ν„° 인덱슀둜 μ‘°νšŒν•˜λ©°, 쑰건에 따라 ν•©ν•΄μ€λ‹ˆλ‹€.

import sys
input = sys.stdin.readline

arr = input().strip()
croa = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
ans = 0
i = len(arr) - 1
while i >= 0:
    if arr[i] == '-':
        ans += 1
        i -= 2
    elif arr[i] == '=':
        if i >= 2 and arr[i-2:i] == 'dz':
            ans += 1
            i -= 3
        else:
            ans += 1
            i -= 2
    elif i >= 1 and (arr[i-1:i+1] == 'nj' or arr[i-1:i+1] == 'lj'):
        ans += 1
        i -=2
    else:
        ans += 1
        i -= 1
    
print(ans)