320x100
https://school.programmers.co.kr/learn/courses/30/lessons/76502
괄호 문자열 문제는 Stack을 이용하는 대표적인 유형 중 하나이다.
stack = [ ] 를 for문 외부에 정의했다가 테스트 케이스 성공률 21%를 맛보았다.
그런데 어째서 샘플 4개는 전부 통과했던걸까... 억울하다고..
def solution(s):
answer = 0
gwalho_list = ['(','[','{']
pair = {')':'(', ']':'[', '}':'{'}
for i in range(len(s)):
stack = []
flag = True
temp = s[0]
s = s[1:] + temp # 왼쪽으로 밀기
for alpha in s:
if alpha in gwalho_list: # ([{
stack.append(alpha) # push
else: # )]}
# stack의 top과 쌍이 맞아야 함
if len(stack) > 0 and stack[-1] == pair[alpha]:
stack.pop() # pop
# 쌍이 맞지 않거나, stack이 없는데 닫는 괄호가 오면 틀린 문자열임
else:
flag = False
# s를 다 돌았는데 stack이 비었으면, 올바른 문자열임
if len(stack) == 0 and flag == True:
answer += 1
return answer
'코딩테스트' 카테고리의 다른 글
[파이썬] 문자열 내 p와 y의 개수 [CODING TEST #44] (0) | 2022.08.07 |
---|---|
[파이썬] 파일명 정렬 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #43] (0) | 2022.08.06 |
[파이썬] 방금그곡 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #41] (0) | 2022.08.04 |
[파이썬] 가운데 글자 가져오기 [CODING TEST #40] (0) | 2022.08.04 |
[파이썬] 압축 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #39] (0) | 2022.08.03 |
댓글