반응형
250x250
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
- 프로그래머스
- MSA
- 모놀리식
- 맥북셋팅
- 코딩테스트
- 맥북
- fastapi
- Pass By Value
- 코어뱅킹
- oracleapex
- 계정계
- 디렉토리계층구조
- DB
- Homebrew
- SQL
- it자격증
- union
- 은행IT
- 개인프로필스튜디오창업
- 의사결정나무모형
- 컴퓨터공학학사취득
- 렌탈스튜디오창업
- 오라클
- jdk
- 맥북환경설정
- 채널계
- 학점은행제무료강의
- 학점은행제
- python
- jdk17
Archives
- Today
- Total
개발머해니
[파이썬] 괄호 짝 확인하기 본문
728x90
반응형
from collections import deque
def parentheses_checker(string):
"""주어진 문자열 인풋의 모든 괄호가 짝이 있는지 확인해주는 메소드"""
stack = deque() # 사용할 스택 정의
print(f"테스트하는 문자열: {string}")
# 문자열의 각 문자를 돌면서
for i in range(len(string)):
# 열리는 괄호가 있는 위치를 스택에 저장한다
if string[i] == "(":
stack.append(i)
# 닫히는 괄호가 있으면
elif string[i] == ")":
# 스택에 열린 괄호 위치 데이터가 있으면 삭제하고
if stack:
stack.pop()
# 아니면 현재 위치에 있는 닫는 괄호에 맞는 열리는 괄호가 없다고 출력한
else:
print(f"문자열 {i} 번째 위치에 있는 닫는 괄호에 맞는 열리는 괄호가 없습니다")
# 스택에 열린 괄호 위치 데이터가 남아 있으면 해당 열린 괄호는 짝이 맞는 닫힌 괄호가 없다는 뜻이다
while stack:
print(f"문자열 {stack.pop()} 번째 위치에 있는 괄호가 닫히지 않았습니다")
case1 = "(1+2)*(3+5)"
case2 = "((3*12)/(41-31))"
case3 = "((1+4)-(3*12)/3"
case4 = "(12-3)*(56/3))"
case5 = ")1+14)/3"
case6 = "(3+15(*3"
parentheses_checker(case1)
parentheses_checker(case2)
parentheses_checker(case3)
parentheses_checker(case4)
parentheses_checker(case5)
parentheses_checker(case6)
728x90
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스] 옹알이(1) (0) | 2024.03.25 |
---|---|
[프로그래머스] 타겟넘버 (0) | 2024.01.05 |
[파이썬] 런던 폭우 Ⅱ (0) | 2023.09.30 |
[파이썬] 리스트 항목 합 탐색 (0) | 2023.09.30 |
[파이썬] 중복되는 항목 찾기 Ⅱ (0) | 2023.09.30 |