😁 빅데이터 문제 풀기 & Study/- BAEKJOON 문제

[2941번] 크로아티아 알파벳 / python3 (in, replace)

또방91 2021. 11. 5. 11:07
728x90

 

문제 링크: https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net


❌ 1차시도 실패

 

1
2
3
4
5
6
7
8
9
10
11
12
13
# in을 써서 찾으면 공백으로 넣고 cnt에 1을 더하기 
 
cro = ['c=','c-','dz=','d-','lj','nj','s=','z=']
 
n = input()
 
cnt = 0
for i in cro:
    if i in n:
       n = n.replace(i," ")  # 찾아서 없애고 공백을 넣는다.(1칸을 띄워야함)
       cnt += 1
n = n.replace(" ","")  #나중에 갯수를 샐때 공백을 뺴줘야하니까

print(len(n) + cnt)
cs

 

1.  요상한 크로아티아 알파벳을 리스트에 넣고

2.  n(입력하는 단어) 중에 들어있으면(in)

3.  공백으로 바꾸고(replace), cnt하고 

4.  나중에 남은 n의 문자열 길이len(n)cnt를 더해보려했다.

 

**아예 제거하지 않고 공백으로 넣은 이유는, 나중에 남은 애들끼리 붙어서 lj나 nj로 만들어질까봐---예제3번의 경우

나름 머리를 썼지만 예제4로 넘어가는 순간 뚜둥.... c=c= 반복이니 cnt가 2가 아닌 1만 되어서 틀렸다.


❓ 정답은 ??

1
2
3
4
5
6
7
8
9
cro = ['c=','c-','dz=','d-','lj','nj','s=','z=']
 
= input()
 
for i in cro:
    if i in n:
        n = n.replace(i,'얍')  # 찾아서 '얍'이라고 바꾸고
 
print(len(n)) 
cs

💯 풀이 과정

 

위 풀이과정을 수정해보자면>>>>

1.  요상한 크로아티아 알파벳을 리스트에 넣고

2.  n(입력하는 단어) 중에 들어있으면(in)

3.  공백 '얍'으로 바꾸고(replace), cnt하고 

4.  나중에 남은 n의 문자열 길이len(n)와 cnt를 더해보려했다.

 

**공백이 아닌 알파벳도 아닌 문자'얍'을 넣고 그걸 하나 카운트 되도록

분리해서 하나하나 출력하는 것이 아니라 몇개로 이루어졌는지 카운트하는 거라서 가능한 방법


😎오늘의 한줄평: 카운트를 해야하는 경우 cnt+=1 이런식으로 해도 되지만, 요상한 문자로 바꿔서 하는 방법도 있다.

728x90