ALGORITHM/Kakao

[Python] 괄호 회전하기

김쿸후 2021. 10. 5. 22:55

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/76502

 

코딩테스트 연습 - 괄호 회전하기

 

programmers.co.kr

 

2. 풀이

copy 대신 이렇게도 쓸 수 있다

    s = origins[:]

 

3. 코드

def checkpair(a,b):
    if a == '(':
        if b == ')': return True
    elif a ==  '{':
        if b == '}': return True
    elif a ==  '[':
        if b == ']': return True
    return False

def checkstack(origins):
    s = origins[:]
    stack = []
    top = -1
    answer = 0
    for i in s:
        new = i
        if top != -1:
            if (checkpair(stack[top],new)):
                stack.pop()
                if top == 0:
                    answer = answer +1 
                top = top -1
            else:
                stack.append(new)
                top = top +1
        else : 
            stack.append(new)
            top = top +1
    if top == -1 :
        return answer
    else:
        return 0


def solution(s):
    doubles = s + s
    answer = 0
    for i in range(len(doubles)):
        if ((doubles[i] == '(') or (doubles[i] == '{') or (doubles[i] =='[')):
            tests = doubles[i:i+len(s)] 
            answer = checkstack(tests)
            if (answer == 0):
                continue
            else:
                break
    return answer

'ALGORITHM > Kakao' 카테고리의 다른 글

[Python] 거리두기 확인하기  (0) 2021.10.05
[Python] 문자열 압축  (0) 2021.10.05
[Python] 비밀지도  (0) 2021.10.03
[Python] 수식 최대화  (0) 2021.10.02
[Python] 키패드 누르기  (0) 2021.09.30