문제 원문: https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 

크로아티아 알파벳의 개수를 새는 문제다. 푸는 방법은 여러 가지가 있을 것으로 생각된다.

 

고려해야할 문자는 다음과 같다.

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

 

 

제출 답안: http://boj.kr/8d45aab67c1345fa961657304e168d09
s = input()
a = len(s) - s.count('-') - s.count('=') - s.count('lj') - s.count('nj') - s.count('dz=')
print(a)

 

해설:

문자열 처리에 대해 연습할 수 있는 문제다.

여러 문자로 표현되는 알파벳들을 한 글자로 계산하여 글자수를 세어야 한다.

 

이론적으로는 표에 해당하는 알파벳을 모두 세어서 빼주면 될 거 같지만, 표현 상으로 dz= 안에 z=가 포함되기 때문에 이를 고려하여 문자열을 처리하여야 한다.

 

이 문자들은 몇 가지 규칙이 있다.

1. '=' 혹은 '-'를 사용 (lj, nj 제외)

2. dz=를 제외하면 2글자 표기

 

특정 문자들은 '=' 혹은 '-'를 포함하기 때문에 '='와 '-'를 세어서 글자수에서 뺄셈하여 모두 처리하였다. 이후 남는 알파벳은 lj, nj, dz=(혼자 3문자를 사용하기 때문에 한번 더 체크)다. 각각을 count() 함수로 세어 뺄셈하였다. 출력하면 끝.

 

 

첨언: 

replace() 함수를 이용할 수도 있으나 이때는 dz=와 z= 중 dz=를 꼭 먼저 처리해야한다. count() 함수를 이용한 이유는 처리 순서에 구애받지 않기 때문이었다. 

 

 

풀이 날짜: 20220312

'알고리즘 문제풀이' 카테고리의 다른 글

[파이썬] 백준 1003: 피보나치 함수  (0) 2023.08.04
머릿말  (0) 2022.12.07

+ Recent posts