출처 https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- "(" 와 ")" 가 포함된 리스트가 주어진다.
- 괄호가 열렸으면 닫히는 괄호가 존재해야한다. ex) '( ( ) ) ( )' : true , '( ( ) ) ) )' : false
- 최근에 비슷한 문제(올바른 수식인지 확인하는 코드)를 풀어본 기억이 있어 아이디어는 수월하게 떠올랐다.
- '(' 가 나오면 스택에 push한다.
- ')' 가 나오면 스택에서 pop한다.
- 인덱스 에러를 예외 처리 해준다.
- 주어진 리스트를 모두 확인 후 스택이 비어있으면 올바른 괄호이다.
작성한 코드는 아래와 같다.
def solution(s):
stack = []
answer = True
for item in s:
if item == "(":
stack.append(item)
elif item == ")" and len(stack)!=0:
stack.pop()
else:
return False
answer = len(stack) == 0
return answer
+
- 인덱스 에러를 try, except를 사용해서 처리할 수 있다.
'study > Coding Test' 카테고리의 다른 글
[Python] 프로그래머스 Lv 2. 연속된 부분 수열의 합 (2) | 2023.05.17 |
---|---|
[Python] 프로그래머스 Lv 2. 숫자의 표현 (0) | 2023.05.14 |
[Python] 프로그래머스 Lv 2. 예상 대진표 (0) | 2023.05.11 |
[Python] 프로그래머스 Lv1. 완주하지 못한 선수 (0) | 2023.05.09 |
[python] 프로그래머스 Lv 1. 햄버거 만들기 (0) | 2023.05.08 |