2941_크로아티아알파벳

minjun kim·2024년 4월 24일

Check Point !
( 해당사항 ✓체크 )

막힘 없이 수월하게 풀린 문제인가? ✅

1시간이내로 풀렸던 문제인가?

1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?

시간을 써도 도무지 풀 수 없는 문제인가?

솔루션을 찾아봤는가? ✅

난이도 체감

최상

하 ✅

<이해도>

완벽히 이해 ✅

다소 헷갈리는 부분들이 있음

이해 못함

<덧붙일 말>


문제

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

실패 풀이

n = input()


data = ['c=','c-','dz=','d-','lj','nj','s=','z=']

cnt = 0
flag = True

for sel in data:
    while True:
        if sel in n:
            deldata = n.index(sel)
            n = (n[:deldata]+n[deldata+len(sel):])
            cnt += 1
        else:
            break            
        
    
for i in n:
    cnt += 1

print(cnt)

처음에 작성할때는 문자열을 슬라이싱하여 작성하면 되겠지? 라는 생각으로 접근하였는데
해당 방식의 문제가있다.
테스트케이스에서
ddz=z= 이 dz= 이 슬라이싱되면 남은 문자열이 dz=이 되버리면서 총 cnt가 2가되는 경우가 발생한다..

따라서 슬라이싱보다는 문자열에 값을 바꿔주고 세리는 것이 합당하다고 판단이 되었다.

풀이

n = input()

data = ['c=','c-','dz=','d-','lj','nj','s=','z=']

for i in data:
    n = n.replace(i,"*")
    
print(len(n))
```py
profile
배움의 흔적을 남기고 싶습니다.

0개의 댓글