[python] 백준 12933 오리

양시온·2023년 7월 23일
0
post-custom-banner

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

어려워..

st = list(input())
ans = 0

if st[0] != "q" or st[-1] != "k" or len(st) % 5:
    print(-1)
    exit()

def find(start):
    quack = "quack"
    j = 0
    global ans
    new_ori = True      # 새로운 오리로 생성
    for i in range(start, len(st)):
        if st[i] == quack[j]:
            if st[i] == "k":
                if new_ori:     # 새로운 오리일 경우, 오리++
                    ans += 1
                    new_ori = False     # k값으로 끝났을땐 false
                j = 0           # 이어지는 "q" 탐색 - 새로운 오리가 아님 (현재 오리)
                st[i] = 0           
                continue        
            j += 1
            st[i] = 0

for i in range(len(st) - 4):     # q 뒤에는 무조건 uack이 와야하므로 -4
    if st[i] == "q":
        find(i)

if any(st) or ans == 0:
    print(-1)
else:
    print(ans)

profile
병아리개발자🐤
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

잘 봤습니다. 좋은 글 감사합니다.

답글 달기