Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- aws iam role
- AWS KMS
Archives
- Today
- Total
기록
[programmers/python] 올바른 괄호 - 스택/큐 본문
문제 설명
- url : https://school.programmers.co.kr/learn/courses/30/lessons/12909
문자열이 주어질 때, 문자열이 올바른 괄호로 이루어져 있는지를 판단하는 문제이다. 주어진 문자열은 오직 '('와 ')'로만 이루어져 있으며, 괄호의 짝이 맞아야 한다.
예를 들어,
- "()()", "(())()"는 올바른 괄호이다.
- ")()(", "(()("는 올바르지 않은 괄호이다.
풀이 과정
가장 직관적인 방식은 스택 혹은 카운팅 변수를 이용하여 여는 괄호와 닫는 괄호의 짝을 실시간으로 확인하는 것이다.
- 문자열을 왼쪽부터 한 글자씩 순회한다.
- '('가 나오면 answer를 1 증가시킨다.
- ')'가 나오면 answer를 1 감소시킨다.
- 만약 answer가 음수로 내려간다면, 닫는 괄호가 더 많이 나온 것이므로 즉시 False를 반환한다.
- 모든 순회를 마친 후 answer가 0이면 올바른 괄호로 간주한다.
코드
def solution(s):
answer = 0
for item in s:
if item == '(':
answer += 1
else:
answer -= 1
if answer < 0:
return False
return answer == 0
'코딩테스트 > python' 카테고리의 다른 글
[programmers/python] 다리를 지나는 트럭 - deque (0) | 2025.06.04 |
---|---|
[programmers/python] 프로세스 - 스택/큐 (0) | 2025.06.01 |
[programmers/python] 기능개발 - 스택/큐 (0) | 2025.05.28 |
[programmers/python] 연속된 숫자 제거하기 – 스택/큐 (0) | 2025.05.28 |
[programmers/python] 게임 맵 최단거리 – BFS (0) | 2025.05.26 |
Comments