일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Set
- heapq
- 그리디
- 자바
- KAKAO BLIND RECRUITMENT
- 정규식
- 동적 계획법
- 추석맞이 코딩챌린지
- 정렬
- backjoon
- Combinations
- 백준
- 재귀함수
- 위클리 챌린지
- 파이썬
- 수학
- Zip
- 카카오
- BFS
- lambda
- divmod
- python
- programmers
- 이분탐색
- DateTime
- 프로그래머스
- java
- 다익스트라
- Re
- dfs
Archives
- Today
- Total
상상쓰
[프로그래머스] 괄호 회전하기 본문
https://programmers.co.kr/learn/courses/30/lessons/76502
deque 에 rotate 라는 함수가 있어서 s 의 길이 동안 위치를 바꿔가며 s 가 올바른 괄호 문자열인지 검사해준다.
stack 에는 여는 괄호를 넣어주고 닫는 괄호가 나왔을 때 stack 의 마지막 괄호랑 비교해서 짝이 맞는지 검사해주면 올바른 괄호 문자열인지 알 수 있다.
from collections import deque
def solution(s):
answer = 0
n = len(s)
s = deque(s)
dic = {')' : '(', '}' : '{', ']' : '['}
for i in range(n):
if i > 0:
s.rotate(-1)
stack = []
t = True
for j in s:
if j in ['(', '{', '[']:
stack.append(j)
else:
if len(stack) == 0:
t = False
break
else:
if stack.pop() != dic[j]:
t = False
break
if t and len(stack) == 0:
answer = answer + 1
return answer
print(solution('[](){}')) # 3
'Coding Test' 카테고리의 다른 글
[프로그래머스] 가장 큰 수 (0) | 2021.06.03 |
---|---|
[프로그래머스] 자물쇠와 열쇠 (0) | 2021.06.02 |
[프로그래머스] 게임 맵 최단거리 (0) | 2021.06.01 |
[프로그래머스] 무지의 먹방 라이브 (0) | 2021.06.01 |
[프로그래머스] 배달 (0) | 2021.05.31 |
Comments