알고리즘/백준 풀이

[백준/Python] #2941 : 크로아티아 알파벳 - 구현

해안해 2023. 3. 23. 20:12

https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 

이거 아니야...?

외 않 되

 

 

https://ooyoung.tistory.com/74 비슷하지만 올바른 코드..를 찾았어요

ㅇㅏ...

아깝다 ㅎ

 

word = input()
c_alpha = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']

cnt = 0
for a in c_alpha:
    if a in word:
        word = word.replace(a, "_")

cnt += len(word)
print(cnt)

위에 코드 참고해서 좀 바꿔봤는데 

그러면서 알아낸 게 있음

 

로직 자체가 틀렸던 게 아니라

그냥 이 부분에서 word.replace(a, "") 이렇게만 써줬던게 문제였었음

아까운게 아니라 그냥 모지리였네 ...

 

파이썬에서는 문자열 내에서 특정 문자를 제거해주고 싶을 때 replace(치환하고 싶은 문자열, 새로운 문자) 메소드를 사용하는 방법이 있는데,

1) 크로아티아 알파벳들을 리스트에 다 넣어놓고

2) 입력받은 문자열 안에 있나 하나씩 쭉 보다가 있으면 해당 알파벳만 없애주고

3) 마지막에 word의 길이를 카운트함으로써 '표에 없는 한글자 알파벳'들을 한번에 세주는

풀이가 떠올라서 문자열에서 특정 문자만 못 없애나... 생각하다가 찾은 메소드가 replace() 이다.

 

아무튼 원래 풀이에서 word = word.replace(a, "") 만 제대로 고쳐서 해봤는데 이것도 정답 인정되는 것 같다

는 제출해보니까 틀렸다고 뜨네.?.?

예시로 나온 입출력은 다 제대로 뜨는데 왜 통과가 안되는지는 정확히 모르겠다 또 내가 뭔가 착각하고 있는 부분이 있을지도; 이건 나중에 알아보고 다시 오는 걸로 해야겠다 . . . (찝찝한 퇴장)