예시를 잘 안보고 풀었더니, 입력값이 모두 크로아티아 알파벳으로만 이루어진 줄 알고 잘못 풀어 시간을 날렸다.
'위 목록에 없는 알파벳은 한 글자씩 센다.' 이 문장을 빼먹으면 안된다! 항상 문제를 볼 때 끝까지 다 읽고 입출력 예시도 잘 살펴보자!
# 2941 크로아티아 알파벳
# 어차피 크로아티아 알파벳 치환한 문자는 다 2개 이상으로 이루어져있으니
# 슬라이싱을 사용해 2개씩 묶어서 확인해보자.
word = input()
cr_cnt = 0
i = 0
while i < len(word):
if word[i:i+2] in ['c=', 'c-', 'd-', 'lj', 'nj', 's=', 'z=']:
cr_cnt += 1
i += 2
elif word[i:i+3] == 'dz=':
cr_cnt += 1
i += 3
else:
cr_cnt += 1
i += 1
print(cr_cnt)
치환된 문자는 알파벳이 2개 이상으로 이루어져 있으니, 슬라이싱을 이용했다.
'dz=' 같은 경우에는 3글자이므로, 슬라이싱을 i부터 i+2 인덱스까지 잡히도록 word[i : i+3] 이렇게 설정했다.(슬라이싱은 반복문과 마찬가지로 종료값은 범위에 포함되지 않는다.
'개발 공부 > 알고리즘 문제풀이' 카테고리의 다른 글
[백준] 1712. 손익분기점 (0) | 2022.07.21 |
---|---|
[백준] 1316. 그룹 단어 체커 (0) | 2022.07.20 |
[백준] 5622. 다이얼 (0) | 2022.07.19 |
[백준] 2908. 상수 (0) | 2022.07.19 |
[백준] 1152. 단어의 개수 (0) | 2022.07.19 |