알고리즘

[파이썬] 단계별 백준 문제 풀기 - 2941 문자열 크로아티아 알파벳

햄❤️ 2021. 3. 7. 13:23
반응형

문제

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

크로아티아 알파벳변경

č c=
ć c-
dz=
đ d-
lj lj
nj nj
š s=
ž z=

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

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

입력

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

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

 


<<코드>>

n = input() 
a = ["c=","c-","dz=","d-","lj","nj","s=","z="] # 크로아티아 알파벳을 리스트 a 안에 넣어준다

for i in a: # 크로아티아 알파벳을 하나씩 도는 for문 생성
    n = n.replace(i,"*") # input된 n문자열 안에서 크로아티아 알파벳이 있다면 *로 대체 replace() 함수
print(len(n)) # 대체된 n문자열에서 전체 요소 갯수 출력

 

<<결과값>>

 

ddz=z=
3

생각보다 코드가 짧게 나왔다. ( ͡° ͜ʖ ͡°) 헷갈렸던 것은 for문에서 a 리스트를 돌아야하는 것. 리스트에 있는 크로아티아 알파벳을 기존 input값인 n의 문자열과 비교하여 특수문자(*)로 대체하고, 전체 길이를 세어준다.

 

 - 파이썬의 문자열을 바꾸는 함수: replace(찾을값,변경값,바꿀횟수)

 - 파이썬 내장함수 len(n)  입력값 n의 길이(요소의 전체 개수) 

728x90
반응형