728x90

< 해결 방법 >

 

초기에는 쉬운 문제인줄 알고 접근했으나 생각보다 따질 것이 많아서 계속 실패했다. 구글링을 통해 해결 방법을 숙지하고 다시 해결을 하였다. del open[-1] 을 안해서 계속 오류가 났었고 이를 해결했다.

 

 

import sys
 
def check(a):
 
 
    if (a.count("(") != a.count(")")) or (a.count("[") != a.count("]")):
        return False
 
    # if '(' not in a and ')' not in a and '[' not in a and ']' not in a:
    #     return True
 
    open = [ ]
    close = [ ]
 
    for i in range(0,len(a)):
        if a[i]=="(" or a[i]=="[":
            open.append(a[i])
 
        if a[i]==")":
            if "(" not in open:
                return False
            else:
                if open[-1]!="(":
                    return False 
                else:
                    del open[-1]    
        if a[i]=="]":
            if "[" not in open:
                return False
            else:
                if open[-1]!="[":
                    return False 
                else:
                    del open[-1]       
 
 
 
    return True                
 
 
 
 
 
 
 
 
 
 
while True:
    a = list(sys.stdin.readline().rstrip())
 
    if len(a)==1 and a[0]==".":
        break
    else:
        if check(a)==True:
            print("yes")
        else:
            print("no") 
728x90

+ Recent posts