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

망낭랑·2023년 6월 12일
0

BaekJoon [백준]

목록 보기
2/2

Q. 2941 : 다리놓기


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

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

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

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

입력 :
첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.
단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

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

# 예제 입력 1			# 예제 입력 2		# 예제 입력 3
ljes=njak			ddz=z=			nljj
----------------------------------------------
# 예제 출력 1			# 예제 출력 2		# 예제 출력 3
6					3				3

📌   풀이


  • 문제 정리
    ⚀ 표에 나와있는 크로아티아 알파벳은 한 글자로 본다. [ lj = 1개 ]
    ⚁ 표에 없는 알파벳은 한 글자씩 센다. [ b = 1개 ]
    ⚂ 예제2 ddz=z= ⇥ [ d, dz=, z= ] 총 3개로 이루어져있음

  • 사용한 함수
    - count() : 문자열 안에서 찾고 싶은 문자의 개수를 찾을 수 있음

  • 풀이 방법
    결과를 구하기 위해서는 입력받은 단어의 총길이에서 크로아티아 알파벳이 존재하는 개수만큼 빼주면 됩니다. 이 경우 표에 없는 알파벳은 한 글자로 셀 수 있으며 표에 나와 있는 알파벳 역시 한 글자로 묶어 세었을 때의 결과가 출력됩니다.


  1. 표에 나와있는 크로아티아 알파벳을 리스트로 선언해줍니다.
cr = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=",  "z="]

  1. 입력받은 단어의 길이를 저장한 result 변수를 선언해줍니다.
s = input()
result = len(s)

  1. cr[i]가 입력받은 문자열 s에 포함되어 있는지 확인하는 반복문을 작성해줍니다.
    cr[i]가 s에 포함되어 있을 경우 s의 길이에서 포함된 cr[i]의 개수만큼 뺀 값을 result 다시 저장해줍니다.
for i in range(len(cr)) :
    if cr[i] in s :
        result = result - (s.count(cr[i]))

  1. 반복문이 끝나면 저장된 count를 출력해주면 됩니다.
print(result)

🖥️   최종 코드


cr = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=",  "z="]
s = input()
result = len(s)
for i in range(len(cr)) :
    if cr[i] in s :
        result = result - (s.count(cr[i]))
print(result)

0개의 댓글