메뉴 건너뛰기

Python 일반 - 올바른 괄호문자열인가?

Eugene 2022.01.26 17:02 조회 수 : 138

def isParentheses(a):

    # 괄호는 무조건 (로 시작한다.

    if a[0] != "(":

        return False

    

    # ( 개수

    leftCnt = 0

    # ) 개수

    rightCnt = 0

 

    # (과 )의 개수를 세면서, )의 개수가 더 커지는 순간 괄호의 요건에서 어긋나므로 False 반환하고 종료한다.

    # 무사히 끝까지 통과하면 올바른 괄호이다.

    for i in a:

        if i == "(":

            leftCnt += 1

        else:

            rightCnt += 1

        if rightCnt > leftCnt:

            return False

    return True

 

if isParentheses(n) == True:

print("YES")

else:

print("NO")

 

이 문제는 Python 100제에 나온 것인데,

해답에는 "(" 괄호를 새로운 리스트에 추가하며,

")" 괄호가 나올 때 마다 크기를 비교하고,

그 때 리스트의 크기가 0이면(즉 좌괄호 가 없는데 우괄호가 나온것이면),

잘못된 괄호 문자열로 판단한다.

그것을 크기 비교 형태로 새로운 리스트 없이 구현한 것이다.

번호 제목 글쓴이 날짜 조회 수
21 Python 일반 - n까지의 수 중에서 소수(Prime Number) 구하기 Eugene 2022.09.02 263
20 Python 일반 - 문자열 압축 Eugene 2022.04.19 149
19 Python 일반 - 1등에서 3등까지 사탕 나눠주기 Eugene 2022.03.14 165
» Python 일반 - 올바른 괄호문자열인가? Eugene 2022.01.26 138
17 Python 일반 - 깊이 우선 탐색 Eugene 2021.03.04 239
16 Python 일반 - Bubble Sort(버블 정렬) Eugene 2020.02.29 313103
15 Python 일반 - 10진수를 2진수로 변환 [1] Eugene 2020.02.19 1790
14 Python 일반 - 스택/큐를 사용하지 않은 회문 알고리즘 Eugene 2019.10.09 455
13 Python 최대 증가 부분 수열 구하기. mangdee 2019.07.06 364
12 python 팬미팅 알고리즘 mangdee 2019.06.21 393
11 Python 동적 변수 생성 mangdee 2019.06.05 13836
10 Python 순열과 조합 mangdee 2019.06.04 1120
9 Python 일반 - 2중 루프를 이용한 문자로 여러가지 삼각형 그리기 [1] Eugene 2019.04.11 2384
8 Python 일반 - 2중 루프를 이용한 문자로 삼각형 찍기 Eugene 2019.02.19 483
7 Python 기초: 논리적 물리적 행(line) Eugene 2018.10.24 4665
6 Python 기초: 재귀함수를 이용한 최대값 구하기. [1] Eugene 2018.09.08 6432
5 Python 기초 - 변수와 문자 상수의 사용 Eugene 2018.06.12 459
4 Python 기초 - 이스케이프(escape) 문자와 변수 외... Eugene 2018.01.24 1711
3 Python 기초 - 주석과 자료형 2: format() Method Eugene 2017.10.27 442
2 Python 기초 - 주석과 자료형 1 Eugene 2017.10.19 1139