백준 문제 풀이 2941 (크로아티아 알파벳)

백준 문제 풀이 크로아티아 알파벳

cro = ['c=','c-','dz=','d-','lj','nj','s=','z='] # 크로아티아 알파벳 리스트로 정리

word = input() 					 # 문자 입력
result = len(word) 				 # 크로아티아 알파벳이 없을 경우를 위해 문자의 최대길이로 초기화
for i in cro: 					 # 크로아티아 알파벳 갯수만큼 루프
    if i in word: 				 # 입력받은 문자에 크로아티아 알파벳이 있다면
        result = result - 1	 		 # 결과값에서 글자길이 하나 제거
print(result) 					 # 출력

처음 생각한 소스 코드

멍청하게도 같은 크로아티아 알파벳이 들어갔을 경우와 dz= 의 문자 길이가 3인걸 생각하지 않았다.

cro = ['c=','c-','dz=','d-','lj','nj','s=','z=']

word = input()
result = len(word)
for i in cro:
    if i in word:
        result = result - word.count(i)
print(result)

그래서 word 안에서 i에 들어가있는 크로아티아 문자의 갯수를 센다음 그 갯수만큼 빼주었다.

그 후 출력하였더니 정답이 나왔다.

cro = ['c=','c-','dz=','d-','lj','nj','s=','z=']

word = input()
for i in cro:
    word = word.replace(i,',')

print(len(word))

그 후 다른사람들의 답을 찾아 보았는데 문자의 갯수를 세면 되는거기 때문에 replace 함수로 찾은 크로아티아 알파벳을 아무 문자로 치환한 다음 문자 길이를 출력해도 된다. replace라는 함수는 몰랐던 함수인데 이번에 찾아보면서 배우게 되었다.