본문 바로가기
Algorithm/프로그래머스

[프로그래머스] 파이썬 문제풀이 - 등굣길

by whdgus928 2023. 4. 20.

https://school.programmers.co.kr/learn/courses/30/lessons/76502?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내풀이

1.  큐를 활용해 회전을 구현한다

2. 괄호 짝이 맞는지 확인하는 함수를 만든다

 

from collections import deque

def pair(queue):
    if len(queue)%2==1:
        return 0
    stack=[]
    for q in queue:
        if stack:
            if stack[-1] == '[' and q == ']': 
                stack.pop()
            elif stack[-1] == '{' and q == '}':
                stack.pop()
            elif stack[-1] == '(' and q == ')':
                stack.pop()
            else:
                stack.append(q)
        else:
            stack.append(q)

    if len(stack)==0:
        return 1

def solution(s):
    queue=deque(s)
    if pair(queue)==0:
        return 0
    
    cnt=0
    for _ in range(len(s)):
        if pair(queue)==1:
            cnt+=1
        tmp=queue.popleft()
        queue.append(tmp)

        
    return cnt

 

배운 점

1. 함수로 만들어서 사용하도록 노력해야겠다

반응형

댓글