안녕하세요.
코딩테스트 연습 두 번째 글로 "올바른 괄호"를 가져왔습니다!
첫 번째 글과 같은 스택/큐 문제입니다. 바로 시작하겠습니다.
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
👉 이 문제를 저는 스택(LIFO)을 이용해서 풀었습니다.
🔍 제가 짠 코드를 간단히 설명하자면,
주어진 문자열 s 에서 '(' 를 만나면 스택에 ')' 를 집어넣고 ')' 를 만나면 스택에서 하나씩 꺼냅니다.
만약 ')' 가 들어왔고 스택이 비어있다면 짝이 맞지 않기 때문에 바로 False를 반환합니다.
그리고 스택에서 pop을 한 문자와 문자 p가 같은지 판별해서 같지 않다면 바로 False를 반환합니다.
for문을 다 돌고 난 후 만약 스택이 비어있다면 짝이 맞는 올바른 괄호이기 때문에 True를 반환하고, 스택이 비어있지 않다면 올바르지 않은 괄호이기 때문에 False를 반환합니다.
전체 코드
def solution(s):
stack = []
for p in s:
if p == "(":
stack.append(")")
elif not stack or stack.pop() != p:
return False
return not stack'코딩테스트 연습' 카테고리의 다른 글
| [프로그래머스/Python] Lv. 2 이진 변환 반복하기 (0) | 2023.07.20 |
|---|---|
| [프로그래머스/Python] Lv. 2 최솟값 만들기 (0) | 2023.07.11 |
| [프로그래머스/Python] Lv. 2 JadenCase 문자열 만들기 (0) | 2023.07.09 |
| [프로그래머스/Python] Lv. 2 프로세스 (0) | 2023.06.26 |
| [프로그래머스/Python] Lv. 2 기능개발 (0) | 2023.06.22 |