STUDY/Algorithm

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

sinawi95 2021. 2. 1. 23:21
728x90

www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net


s =input()
alpha2=['c=','c-','dz=','d-','lj','nj','s=','z=']
result = 0
index = 0
while True:
    tmp = s.find(alpha2[index])
 
    if tmp == -1:
        if index == 7:
            break
        index += 1
    else:
        s = s.replace(alpha2[index],'_',1)
        result += 1

for ch in s:
    if ch != '_':
        result += 1
print(result)

인덱스로 비교할까하다가 너무 오래걸릴것 같아서 다른 방법을 찾았다.

'dz='와 'z='를 구분할만한 방법이 어떤게 있는지 생각해보다가 빼버리면 구분 가능할수있었다.

하지만 새로운 문제가 생겼다.

nljj에서 lj 를 빼고 나면 nj가 남는데 다시 알파벳으로 인식되는 문제였다.

그래서 특수문자로 치환했고 성공했다.

다 풀고 나서 타인의 코드를 봤는데 '이게 왜풀리지?'에서 '이게 되네' 하는 코드가 있었다.

나와 같이 어이가 없길 바라며 코드를 공유하겠다.

a = input()
b = ['c=','c-','z=','d-','lj','nj','s=','dz=']
tmp = len(a)
for i in b:
    tmp -= a.count(i)
print(tmp)

그나저나 오늘은 백준 서버가 사람이 몰리는지 채점시간보다 기다리는 시간이 오래걸렸다. 내일은 나아지겠지.

그리고 백준을 단계별로 풀고있는데 level 7 문자열까지 풀었다.

시간나는 날이면 하루에 한단계씩 푸는 거 같은데 아직 높은 단계가 안나와서 그런가보다.

점점 느려지겠지...

'STUDY > Algorithm' 카테고리의 다른 글

[백준] 1032 명령프롬프트  (0) 2021.02.03
[백준] 1268. 임시반장 구하기  (0) 2021.02.02
[백준] 10809 알파벳 찾기  (0) 2021.02.01
[백준] 1157 단어 공부  (0) 2021.02.01
[백준] 8958 OX 퀴즈  (0) 2021.01.30