파이썬 알고리즘 092 | [백준 2941번] 크로아티아 알파벳

Yunny.Log ·2021년 2월 4일
0

Algorithm

목록 보기
95/318
post-thumbnail

92. 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.

크로아티아 알파벳 변경
č c=
ć c-
dž dz=
đ d-
lj lj
nj nj
š s=
ž z=
예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.

입력
첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

출력
입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

예제 입력 1
ljes=njak
예제 출력 1
6

<내 풀이>

k=list(map(str,input()))
k.append(-1)
cnt=0
for i in range(len(k)-1):
    cnt+=1
    if k[i]=='c':
        if k[i+1]=='=':
            cnt-=1
        elif k[i+1]=='-':
            cnt-=1
    elif k[i]=='l':
        if k[i+1]=='j':
            cnt-=1
    elif k[i]=='n':
        if k[i+1]=='j':
            cnt-=1
    elif k[i]=='s':
        if k[i+1]=='=':
            cnt-=1
    elif k[i]=='z':
        if k[i+1]=='=':
            if i>1:
                if k[i-1]!='d':
                    cnt-=1
    elif k[i]=='d' :
        if k[i+1]=='z' and k[i+2]=='=':
            cnt-=2
        elif k[i+1]=='-':
            cnt-=1
print(cnt)

=> 결국 계속 에러가 났음

<다른 분의 풀이>

(1)


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

(2)

a = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] 
alpha = input() 
for t in a: 
alpha = alpha.replace(t, '*') print(len(alpha))

출처: https://hongku.tistory.com/255 [IT에 취...]

<반성점>

  • replace 기능을 생각하지 못했다

<배운 점>

  • 나는 부족하다 아직두 많이!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0개의 댓글