Heram's Studyroom 자세히보기

CODES/백준 | Solved.ac

[ 백준 파이썬 문제풀이 ] 단계별로 풀어보기 / 6-6 심화 1 크로아티아 알파벳 #2941

Heram06 2025. 5. 22. 12:31
반응형

[ 백준 파이썬 문제풀이 ] 단계별로 풀어보기 / 6-6 심화 1  크로아티아 알파벳 #2941

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

 

 


 

문제 📢

 

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

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

 

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

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

 

입력 

출력

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

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

 

 

예제 입출력 🎨

 

 

나의 알고리즘  🎻

 

 먼저 변경한 크로아티아 알파벳을 리스트로 작성해준 뒤, 입력받은 문자열에서 리스트에 저장되어있는 값이 존재하면 해당 알파벳을 문자열에서 지우고 아무 문자 ( 나는 @로 했다 )한개를 추가하여 한 글자 ( 기존 크로아티아 알파벳 )로 변경한것처럼 표현하였다. 마지막으로 문자열의 알파벳 개수를 출력한다.

  • 변경한 크로아티아 알파벳 리스트에 저장
  • 입력받은 문자열에서 리스트에 포함된 알파벳들을 지우고 @를 추가
  • 최종 문자열의 개수를 출력

 

내가 적은 답안 💡

 

import sys

W_list = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']

W = sys.stdin.readline().rstrip()

for i in range(len(W_list)):
    if W_list[i] in W:
        W = W.replace(W_list[i], "@")


print(len(W))

 

 


 

이 블로그는 개발자를 꿈꾸는 사람이 열심히 공부하며 적어가는 공간입니다.

제 답안과 풀이가 다를 수 있지만, 정확한 정보를 위해 여러 번 검토하며 적겠습니다!

반응형