import sys
word = sys.stdin.readline().rstrip()
alpha = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
cnt = {}
for i in alpha:
cnt[i] = word.count(i)
if cnt['dz='] < cnt['z=']:
cnt['z='] -= cnt['dz=']
elif cnt['dz='] == cnt['z=']:
cnt['z='] = 0
answer = len(word)
for i, v in cnt.items():
# answer = answer - len(i) * v + v
answer = answer - v * (len(i) - 1)
print(answer)
문자열 대체하고 최종적으로 문자열의 길이 출력하면 쉽게 풀리는 문제였다. 정말 못 풀었다.. if else문이 필요하지 않았던 것이다. 그리고 replace 함수 쓰면 간단하게 풀린다. 딕셔너리는 필요도 하지 않는다고!
import sys
word = sys.stdin.readline().rstrip()
alpha = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
for i in alpha:
word = word.replace(i, "@")
print(len(word), word)
파이썬 기초 공부를 다시 해야겠다.