알고리즘 고득점 Kit > 스택/큐 > 올바른 괄호
올바른 괄호 Lv.2
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다.
예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다.")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.
'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.
[제한사항]
- 문자열 s의 길이 : 100,000 이하의 자연수
- 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.
첫 번째 풀이 : 92.3점
from collections import deque
def solution(s):
answer = True
q = deque()
for i in s:
if i == '(':
q.append(i)
elif len(q)>0 and i == ')':
q.pop()
if q:
return False
return True
- q에 ( 만 남았을 경우를 생각안
두 번째 풀이: 100점
from collections import deque
def solution(s):
q = deque()
for i in s:
if i == '(':
q.append(i)
else:
if len(q) == 0:
q.append(-1)
break
else:
q.pop()
if q:
return False
return True
- 큐를 활용하여 메모리 절약
'코딩테스트 | python > 프로그래머스' 카테고리의 다른 글
| [프로그래머스 | python] 주식가격 (0) | 2024.04.04 |
|---|---|
| [프로그래머스 | python] 가장 먼 노드 (0) | 2024.04.02 |
| [프로그래머스 | python] 무인도 여행 (0) | 2024.03.13 |
| [프로그래머스 | python] 게임 맵 최단거리 (0) | 2024.03.13 |
| [프로그래머스 | python] 나머지가 1이 되는 수 찾기 (0) | 2024.03.07 |