개발 공부/알고리즘 문제풀이

[백준] 2941.크로아티아 알파벳

5묘 2022. 7. 20. 00:01
 

2941번: 크로아티아 알파벳

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

www.acmicpc.net


예시를 잘 안보고 풀었더니, 입력값이 모두 크로아티아 알파벳으로만 이루어진 줄 알고 잘못 풀어 시간을 날렸다.
'위 목록에 없는 알파벳은 한 글자씩 센다.' 이 문장을 빼먹으면 안된다! 항상 문제를 볼 때 끝까지 다 읽고 입출력 예시도 잘 살펴보자!

# 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