✏️ 문제
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'가 되서 새로운 크로아티아 알파벳이 만들어진다)
'Python > online judge' 카테고리의 다른 글
백준 [11720.숫자의 합] | Python (0) | 2023.11.27 |
---|---|
백준 [25206.너의 평점은] | Python (0) | 2023.11.17 |
백준 [2566.최댓값] | Python (0) | 2023.11.17 |
백준 [2563.색종이] | Python (0) | 2023.11.17 |
백준 [1157.단어 공부] | Python (0) | 2023.11.17 |