백준 2941번
최종 제출 코드
lists = ['c=', 'c-', 'dz=','d-','lj','nj','s=','z=']
S = input()
count = 0
i=0
while(i < len(S)):
if S[i:(i+3)] in lists:
i += 3
elif S[i:(i+2)] in lists:
i += 2
else:
i += 1
count += 1
print(count)
- 크로아티아 알파벳에서 변경된 문자의 길이에 따른 경우의 수는 3가지
1) 3개의 문자로 구성된 경우
2) 2개의 문자로 구성된 경우
3) 1개의 문자로 구성된 경우
- 이 경우에는 2)번 케이스가 1)번 케이스의 부분집합이 되는 경우가 존재하지 않지만, 존재하는 경우라면 조건문의 순서에 따라 1)번 케이스를 2)번 케이스로 분류하는 오류가 발생할 수 있으므로 조건문의 순서를 코드와 같이 작성했다.
ex) dz와 dz=라는 문자가 존재한다고 했을 때, 문자 dz=에 대해 S[i:(i+2)] in lists부터 검사하면 해당 조건문은 dz=를 dz로 분류한다.