https://www.acmicpc.net/problem/9012
괄호로만 구성된 문자열 중 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(VPS)라고 합니다.
입력으로 주어진 문자열이 VPS인지 확인하는 것이 이 문제의 목표입니다.
이 문제는 문자열, 스택 문제로 분류됩니다.
저는 스택은 사용하지 않고, 단순히 괄호를 세는 방식으로 해결했습니다.
접근 방식
1. VPS인지 검사하기 위해 문자 하나 씩 검사를 수행합니다.
2. vlidator라는 이름의 변수를 사용했으며, '(' 일 때 +1을 하고 ')' 일 때 -1 연산을 수행합니다.
2-1. 만약 반복문 중간에 validator가 음수가 되는 경우가 있다면 반복문을 종료합니다.
3. 반복문이 종료가 된 후 validator가 0이면 YES, 그렇지 않다면 NO를 저장합니다.
전체 코드
제출 언어: Python3
시간: 80ms
import sys
def solution(ps):
is_vps = "YES"
validator = 0
for c in ps:
if validator < 0:
break
if c == "(":
validator += 1
else:
validator -= 1
if validator != 0:
is_vps = "NO"
return is_vps
if __name__ == "__main__":
T = int(sys.stdin.readline().strip())
answer = []
for _ in range(T):
ps = sys.stdin.readline().strip()
res = solution(ps)
answer.append(res)
for res in answer:
print(res)
읽어 주셔서 감사합니다 :)
틀린 부분이 있다면 댓글로 편히 알려주세요😊
'PS > Python' 카테고리의 다른 글
[백준] 2468 - 안전 영역 (파이썬, Python) (0) | 2021.10.10 |
---|---|
[백준] 9205 - 맥주 마시면서 걸어가기 (파이썬, Python) (0) | 2021.09.29 |
[백준] 1916 - 최소비용 구하기 (파이썬, Python) (0) | 2021.09.28 |
[백준] 21610 - 마법사 상어와 비바라기 (파이썬, Python) (0) | 2021.09.22 |
[Programmers] 합승 택시 요금 (파이썬, Python) (0) | 2021.09.21 |