jeeyeonLIM / coding_test

Let's practice the coding test!
1 stars 0 forks source link

[연습문제] 올바른 괄호 #70

Open jeeyeonLIM opened 3 years ago

jeeyeonLIM commented 3 years ago

문제 설명

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

제한사항

s answer
()() true
(())() true
)()( false
(()( false

입출력 예 설명

jeeyeonLIM commented 3 years ago

나의 풀이

Ver1. 야매로 풀어버리기(만점은 아니지만)

Ver2. Ver1 보완

Ver3. 최종본

느낀점

jeeyeonLIM commented 3 years ago

다른 사람들 풀이

Ver1. 리스트에 넣고 빼고, append + pop

def solution(s):
    answer = True
    Queue = []
    for i in s: 
        if i == '(': Queue.append('(')
        else: 
            # try로 실행할 코드를 넣고 except에 예외 발생시 실행할 부분 추가.
            try: Queue.pop() 
            except: return False # 즉 Queue가 빈 리스트여서 pop할게 없을 때 False를 return

    if len(Queue) == 0: return True # 괄호가 올바르게 들어있는 경우
    else: return False

Ver2.

def is_pair(s):
    x = 0
    for w in s:
        if x < 0:
            break
        x = x+1 if w=="(" else x-1 if w==")" else x
    return x==0