괄호 [ Python ] [ 백준 : 9012 ]
2023. 6. 1. 23:48ㆍ알고리즘/백준
풀이 및 회고
오랜만에 괄호문제를 풀었는데 생각보다 손이 잘 나가지 않았다.
머리로는 알고있는데 구현이 잘 안되는 느낌을 많이 받았다.
알고리즘 문제를 풀때 머리로 알고있는 느낌을 주석으로 더 많이 자세히 적으면서 풀어야겠다.
그리고 NO 를 출력해야되는데 No 를 출력문에 써놔서 여러번 틀렸다.. ㅠ
우선 문제는 괄호를 어떻게 검증할 것이냐는건데 스택을 활용해 검증을 한다.
빈 스택에 여는 괄호면 값을 넣고 닫는 괄호일 경우 여는 괄호를 제거해 주는데 만약 스택에 값이 없다면 NO 를 출력하고 종료한다.
최종적으로 루프가 끝난 후 스택에 값이 있으면 NO 를 출력하고 값이 없다면 YES 를 출력한다.
# 괄호
# 테스트를 몇 번 할지 입력받는다.
# 반복문을 선언해 괄호를 넣는다.
# 괄호를 저장할 리스트를 만든다.
# 괄호를 입력받는다.
# 괄호를 하나씩 돌기위해 반복문을 선언한다.
# 괄호를 리스트에 넣으며 검증한다.
# 검증 후 괄호가 저장된 리스트가 비어있으면 YES , 아니면 NO 를 출력한다.
T = int(input())
for i in range(T):
insert = input() # 괄호를 입력받는다.
stack = [] # 값을 넣어 확인할 스택 리스트
for j in insert: # 괄호를 하나씩 반복하며 검증한다.
if j == '(': # ( 인 경우 stack 에 넣는다.
stack.append(j)
elif j == ')': # ) 인 경우
if stack: # stack 에 값이 있으면 pop
stack.pop()
else: # stack 에 값이 없으면 NO 를 출력하고 종료한다.
print('NO')
break
else: # 반복문이 정상적으로 종료되었을때
if stack: # 스택에 값이 있으면 NO 출력
print('NO')
else: # 스택에 값이 없으면 YES 출력
print('YES')
'알고리즘 > 백준' 카테고리의 다른 글
수학은 비대면 강의입니다 [ Python ] [ 백준 : 19532 ] (0) | 2023.05.31 |
---|---|
체스 [ Python ] [ 백준 : 17122 ] (0) | 2023.05.31 |
파도반 수열 [ Python ] [ 백준 : 9461 ] (0) | 2023.05.30 |
최대공약수와 최소공배수 [ Python ] [ 백준 : 2609 ] (0) | 2023.05.30 |
피보나치 함수 [ Python ] [ 백준 : 1003 ] (3) | 2023.05.30 |