본문 바로가기
백준 - 파이썬/단계별 - 6 (심화1)

*[백준/파이썬] 2941번 크로아티아 알파벳

by miiinn 2025. 5. 9.

 

생각보다 코드가 너무 간단했다.

# 크로아티아 알파벳
croatia_alphabet = ['dz=', 'lj', 'nj', 'c=', 'c-', 'd-', 's=', 'z=']
word = input()

# 크로아티아 알파벳 개수 세기
for i in croatia_alphabet:
    word = word.replace(i, '*')

# 최종 개수 출력
print(len(word))

잘못된 코드

# 크로아티아 알파벳
croatia_alphabet = ['dz=', 'lj', 'nj', 'c=', 'c-', 'd-', 's=', 'z=']

word = input()
cnt = 0

# 크로아티아 알파벳 개수 세기
for i in croatia_alphabet:
    while i in word:
        cnt += 1
        # 문자열에서 이미 찾은 알파벳은 빼기
        word = word.replace(i, '',1)

# 일반 알파벳 개수 세기
cnt += len(word)

# 최종 개수 출력
print(cnt)

 

 

[for문에서 리스트를 검사할 때]

 

틀린 코드

for i in croatia_alphabet:
    if croatia_alphabet[i] in word:
        cnt += 1
        # 문자열에서 이미 찾은 알파벳은 빼기
        word.replace(croatia_alphabet[i], '')
        print(word)

 

 

맞는 코드

for i in croatia_alphabet:
    if i in word:
        cnt += 1
        # 문자열에서 이미 찾은 알파벳은 빼기
        word.replace(i, '')
        print(word)

 

 

 

+++++ replace 함수 사용 시 꼭 다시 할당

 

string 자료형에서 요소를 대체할 때(지울 때도 가능) 사용하며 (바꿀 값, 대체할 값, 교체 개수) 식으로 사용한다.

 

[while 사용의 필요성]

 

[croatia_alphabet 리스트에서 요소 순서 큰거부터 작은거로 바꾸기]

- dz=를 맨 앞에 두어 가장 긴 문자 부터 찾고 시작하기