파이썬 python 크로아티아 알파벳 [BOJ 2941]
2941번: 크로아티아 알파벳
문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고,
www.acmicpc.net
문자열 개수를 셀 때 고려해야하는 조건을 조건문으로 작성했습니다.
전체 코드
word = input()
croatian = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
subcount = 0
for alphabet in croatian:
if alphabet in word:
if alphabet == 'dz=':
subcount -= 2 * word.count(alphabet)
elif alphabet == 'z=':
subcount -= word.count(alphabet)
if 'dz=' in word:
subcount += word.count('dz=')
else:
subcount -= word.count(alphabet)
count = len(word) + subcount
print(count)
기본적으로 문자열 내부의 글자 개수를 셀 때 len함수를 사용했습니다.
크로아티아 알파벳은 여러 글자가 한 글자처럼 취급되는 경우이므로, 그 경우들을 리스트에 담아 해당 경우들이 나타날 때 만큼 전체 글자 수에서 뺐습니다.
이때 'dz='인 경우와 'z='인 경우 서로 문자열이 겹치기 때문에, 중복해서 빼지 않도록 주의합니다.
'알고리즘 문제풀이 (파이썬) > BOJ (Baekjoon Online Judge)' 카테고리의 다른 글
함수 활용 [BOJ 1316] 그룹 단어 체커 (파이썬 python) (0) | 2020.01.23 |
---|---|
한수의 개수 구하기 [BOJ 1065] 한수 (파이썬 python) (0) | 2020.01.20 |
파이썬 입력이 끝날 때까지 받아오는 방법 [BOJ 10951] A+B - 4 (파이썬 python EOF EOFError) (0) | 2020.01.17 |