알고리즘 문제풀이/백준
[Seop's의 코드풀이] Back_Joon 9012 괄호
섭섭군
2020. 4. 20. 20:16
반응형
이번에 살펴 볼 문제는 올바른 괄호인가를 판단하는 문제입니다.
먼저 문제의 조건과 입출력이 어떻게 진행이 되는지 한번 살펴보도록 하겠습니다.
소괄호로만으로 이루어진 문자열이 주어졌습니다.
덕분에 우리는 "(" 와 ")"만 구분하면됩니다.
저는 본 문제에서 Stack을 활용해서 문제를 풀었습니다.
문제를 푼 과정은 다음과 같은 과정으로 풀었는데요
- 문자열을 받아온 후 하나씩 체크해 봅니다.
- 만약 "(" 문자가 온다면 스택에 추가 해 줍니다.
- ")" 이 문자가 왔을 시 스택에 저장되어있는 문자가 있는지 확인하고 있다면 pop 하고 없다면 정답은 No 가 출력되게 됩니다.
- 문자열을 다 순회 하였음에도 불구하고 Stack 에 문자가 있다면 No 를 출력합니다. 그 이외의 경우에는 YES를 출력합니다.
제가 작성한 코드는 다음과 같습니다. Python으로 작성하였습니다.
import sys
input = sys.stdin.readline
N = int(input())
for _ in range(N) :
stack = []
answer = True
s = input().rstrip()
for i in s :
if i == "(" :
stack.append(i)
elif i == ")" :
if stack :
check = stack.pop()
else :
answer = False
break
if stack or answer == False:
print("NO")
else :
print("YES")
소괄호만 있는 문제여서 그리 어렵지 않게 해결 할 수 있는 문제였습니다.
다음 포스팅에서 또 찾아뵙도록 하겠습니다.
반응형