[백준 | 파이썬] 2941 : 크로아티아 알파벳

devheyrin·2022년 3월 1일
0

codingtest

목록 보기
22/65
💡 몇 가지 입력만 주의하면 쉽게 풀 수 있는 문제

문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.

크로아티아 알파벳변경
čc=
ćc-
dz=
đd-
ljlj
njnj
šs=
žz=

예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.

입력

첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

출력

입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

풀이 방법

nljj 처럼 중간에 크로아티아 문자를 제거하고 나면 nj 가 되어 또 다른 크로아티아 문자로 인식할 수 있다는 점만 주의하면, 문자열 안에서 크로아티아 문자를 찾아 제거해가면서 알파벳 갯수를 구할 수 있다.

제거한 뒤에 문자열이 붙어서 새로운 크로아티아 문자열이 만들어지지 않도록 문자열을 제거한 자리에 공백을 넣어주고, 6개의 크로아티아 알파벳을 모두 찾은 뒤에 공백을 제거하고 길이를 센다.

코드

# 크로아티아 알파벳 배열 
croatia = ['c=','c-','dz=','d-','lj','nj','s=','z=']

word = input()

cnt = 0
for i in croatia:
    cnt += word.count(i)
    if word.count(i) != 0:
        word = word.replace(i," ")

word = word.replace(" ","")
cnt += len(word)

print(cnt)
profile
개발자 헤이린

0개의 댓글