티스토리 뷰

문제출처 - https://swexpertacademy.com/main/code/problem/problemSubmitDetail.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

# stack 뒤에 넣을 수 있으면 해당 idx 반환하고, 넣을 수 있는게 없으면 False 반환
def check(stack, location):
    for i in range(len(stack)):
        if len(stack[i]) == location:
            return i
    return False


t = int(input())
for case in range(1, t+1):
    flog = input()
    max_cnt = 0
    stack = []
    cnt = 0

    for i in range(len(flog)):
        if flog[i] is 'c':
            stack.append(['c'])
            cnt += 1
            if cnt > max_cnt: max_cnt = cnt
        elif flog[i] is 'r':
            temp = check(stack, 1)
            if temp is False:
                max_cnt = -1
                break
            stack[temp].append('r')
        elif flog[i] is 'o':
            temp = check(stack, 2)
            if temp is False:
                max_cnt = -1
                break
            stack[temp].append('o')
        elif flog[i] is 'a':
            temp = check(stack, 3)
            if temp is False:
                max_cnt = -1
                break
            stack[temp].append('a')
        elif flog[i] is 'k':
            temp = check(stack, 4)
            if temp is False:
                max_cnt = -1
                break
            stack[temp].append('k')
            stack.pop(0)
            cnt -= 1

    if len(stack) != 0: max_cnt = -1
    print("#%d" % case, max_cnt)
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함