예전에 매우 힘겹게 풀었던 기억이 있다. 그떄의 풀이를 까먹었던 문제였고, 실력이 늘고 다시 보니 생각보다 쉽게 풀렸다:
import sys
N = str(sys.stdin.readline().strip())
num_alpha = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
for i in range(len(num_alpha)):
for j in range(N.count(num_alpha[i])):
N = N.replace(num_alpha[i], 'p')
print(len(N))
num_alpha 라는 리스트에 크로아티아 알파벳을 모두 정의해준다.
문자열 N에 num_alpha[i]가 있는 갯수를 세주고, 이 갯수만큼 N 에 있는 그 num_alpha[i] 문자열을 'p'로 대체해준다. (굳이 'p'가 아닌 '#'도 상관 없다) 대체해주고 이를 새로운 N으로 정의해준다. 대체를 해주는 이유는 대체가 아닌 그냥 없애버린다면, 'ddz=z=' 같은 경우 'dz='가 없어지면 'dz='가 남는데 잘못하면 크로아티아 알파벳으로 인식할 수도 있을 것 같아 단순하게 대체해주었다(아닐수도 있지만 혹시 모를 에러를 피하기 위해 뺐다)
마지막으로 N의 길이를 출력하면된다.
'알고리즘 테스트 > 백준 문제풀이 및 해설' 카테고리의 다른 글
<백준 문제풀이: 1193번> 파이썬 - 분수찾기 (0) | 2020.11.24 |
---|---|
<백준 문제풀이: 1712번> 파이썬 - 손익분기점 (0) | 2020.11.24 |
<백준 문제풀이: 1065번> 파이썬 - 한수 (0) | 2020.11.18 |
<백준 문제풀이: 4673번> 파이썬 - 셀프 넘버 (0) | 2020.11.17 |
<백준 문제풀이: 5622번> 파이썬 - 다이얼 (0) | 2020.11.17 |