문제 원문: https://www.acmicpc.net/problem/2941
2941번: 크로아티아 알파벳
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=
www.acmicpc.net
크로아티아 알파벳의 개수를 새는 문제다. 푸는 방법은 여러 가지가 있을 것으로 생각된다.
고려해야할 문자는 다음과 같다.
크로아티아 알파벳 | 변경 |
č | c= |
ć | c- |
dž | 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 |