본문 바로가기
코테정복💫/파이썬 PYTHON

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

by 옹쑥이 2023. 8. 8.

문제

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

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

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

입력

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

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

출력

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


풀이

alphabet = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="]

x = input()
answer = 0

for i in alphabet:
    if x.find(i) != -1:
        answer += 1 * x.count(i)
print(len(x)-answer)

[상세 풀이]

if x.find(i) != -1:

: find()는 찾는 문자가 없을 경우에는 -1을 출력함. 따라서 -1이 아닐 때를 조건으로 둠

answer += 1 * x.count(i)

: find()는 문자열 안에서 첫 번째로 위치한 값만 출력하므로 count()를 사용하여 개수를 셈

print(len(x)-answer)

: 전체 길이에서 구한 값을 뺌

 

 

참고🐣

replace('바꿀문자열', '새문자열')

x = input()

alphabet = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="]
answer = 0

for i in alphabet:
    x = x.replace(i, "j")
print(len(x))

[참고 자료]

https://dojang.io/mod/page/view.php?id=2299 

 

파이썬 코딩 도장: 24.1 문자열 조작하기

Unit 24. 문자열 응용하기 지금까지 리스트 사용 방법을 알아보았습니다. 리스트는 요소 여러 개가 연속적으로 이어져 있죠? 마찬가지로 문자열도 문자 여러 개가 연속적으로 이어져 있는 시퀀스

dojang.io

 

 

문제 출처

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

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net