티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/76502
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
from collections import deque
def solution(s):
answer = 0
Q = deque(s)
for i in range(len(s)):
Q.append(Q.popleft())
if check(Q):
answer += 1
return answer
def check(Q):
stack = []
for q in Q:
if q in ('(', '[', '{'): stack.append(q)
else:
if not stack: return False
top = stack.pop()
if q == ')' and top != '(': return False
if q == '}' and top != '{': return False
if q == ']' and top != '[': return False
if stack: return False
return True
문제를 보고 스택을 써야겠다! 라는 생각이 났다. 괄호를 회전하기 위해 deque의 popleft와 append를 사용했다.
check함수를 통해 회전한 괄호 문자열이 올바른지 검사하였다. 해당 함수 내에서는 스택을 사용하여 닫는 괄호가 나왔을 때, 스택의 top이 해당 괄호를 여는 것인지 검사한다.
'PS > Programmers Python' 카테고리의 다른 글
프로그래머스(파이썬) - 멀리 뛰기 (0) | 2023.05.08 |
---|---|
프로그래머스(파이썬) - 튜플 (0) | 2023.05.05 |
프로그래머스(파이썬) - 예상 대진표 (0) | 2023.05.01 |
프로그래머스(파이썬) - 방문 길이 (0) | 2022.12.27 |
프로그래머스(파이썬) - N개의 최소공배수 (0) | 2022.12.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 딕셔너리
- 백준
- 큐
- 10815
- 1764
- 덱
- 브루트포스
- 프로그래머스
- 싸피
- 백트래킹
- 파이썬
- 10845
- 조합
- 자료구조
- dp
- 삼성청년소프트웨어아카데미
- 1759
- 1182
- 수학
- 1715
- 스택
- 17478
- 러스트
- 10816
- 11051
- 2805
- 1358
- 10971
- heapq
- 빌림
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함