Python/online judge

백준 [2941.크로아티아 알파벳] | Python

구름솜:D 2023. 11. 17. 18:03
728x90

✏️ 문제

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

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 

✏️ 풀이방법

1. 크로아티아 알파벳을 담은 리스트(croatias)를 선언

2. 입력받은 문자열(croatia) 안에 크로아티아 알파벳이 있는지 확인

3. 크로아티아 알파벳과 일치하는 문자열이 있을경우 문자열을 '!'로 치환

4. 치환후 문자열의 길이를 출력

 

 

📌 코드

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

for i in range(len(croatias)):
    if croatias[i] in croatia:
        croatia = croatia.replace(croatias[i], "!")
print(len(croatia))

 

 

📌 결과

ljes=njak

6
ddz=z=

3
nljj

3
c=c=

2

 

 

🤔 시행착오.1

croatias = ['c=','c-','dz=','d-','lj','nj','s=','z=']
croatia = input()
cnt=0

for i in range(len(croatias)):
    if croatias[i] in croatia:
        cnt+=1
        result = croatia.replace(croatias[i], "")

print(cnt + len(result))

- 입력된 문자열안에있는 크로아티아 알파벳을 카운트 하고, 크로아티아 알파벳을 빈문자열로 치환해서 남아있는 문자열 길이랑 카운트한

크로아티아 알파벳 갯수랑 합하여 출력하려고 했다.

- 'c=c=' 같이 같은 크로아티아 알파벳이 있는 경우 카운트를 2개가 아닌 1개로 하는 문제 발생

- 'c=c=' 같이 같은 크로아티아 알파벳이 있는 경우  replace로 치환할 때 'c=' 모두 한번에 치환하는 문제 발생

- result 변수에 치환하는 방법이 원래 문자열인  croatia에서 새롭게 크로아티아 알파벳을 공백으로 치환하는 거라 누적되어 치환되는 것이 

아님 

 

 

🤔 시행착오.2

croatias = ['c=','c-','dz=','d-','lj','nj','s=','z=']
croatia = input()
result = ""
cnt=0
for i in range(len(croatias)):
    if croatias[i] in croatia:
        cnt+=1
        croatia = croatia.replace(croatias[i], "")
        
print(len(croatia)+cnt)

- replace로 문자열 치환을 하는 과정에서 크로아티아 알파벳을 공백으로 처리하면 치환한 새로운 문자열이 크로아티아 알파벳이 될 수 있다. 

 (ex. 'nljj' 문자열에서  크로아티아 알파벳 'lj'를 공백으로 치환하면 치환한 문자열이 'nj'가 되서 새로운 크로아티아 알파벳이 만들어진다)