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

hyunhee·2022년 6월 21일
0

algorithm

목록 보기
14/24

문제

내 풀이

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)

파이썬 기초 공부를 다시 해야겠다.

0개의 댓글