🪴 Hayul's digital garden

Search

Search IconIcon to open search

올바른 괄호

Last updated Unknown Edit Source

괄호가 바르게 짝지어졌다는 것은 ‘(’ 문자로 열렸으면 반드시 짝지어서 ‘)’ 문자로 닫혀야 한다는 뜻입니다. 예를 들어

‘(’ 또는 ‘)’ 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 truereturn 하고, 올바르지 않은 괄호이면 falsereturn 하는 solution 함수를 완성해 주세요.

# 제한사항

# 입출력 예

sanswer
“()()”true
“(())()”true
“)()(”false
“(()(”false

# 나의 풀이

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
def solution(s):
    answer = True
    flag = 0
    for n in s :
        if flag < 0 :
            return False
        if n == '(' :
            flag += 1
        else :
            flag -= 1
    return True if flag == 0 else False

이 문제는 flag 용도로 쓸 변수를 선언하고 해당 변수를 이용하여 괄호가 올바른지를 체크했다. 만약에 flag가 음수가 되는 경우는 )가 먼저 나오는 경우라서 바로 올바르지 않기 때문에 False를 리턴했고, (이 나오는 경우는 flag를 증가시키고 )이 나오는 경우 flag를 감소시켜서 만약에 0이 되면 괄호가 열린만큼 닫힌거라 True를 리턴했고 0보다 크면 (가 더 많이 떴다는 뜻으로 False를 리턴했다.