[python_파이썬_pass]백준_9012번_괄호_실버4_풀이
2024. 10. 10. 20:36ㆍ코드리뷰
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/slUxXU5NCUQ?feature=shared
24년 10월 10일 회사 러닝타임 및 점심시간 활용 풀이
queue관련 학습을 한 후 문제를 보니 바로 해결이 가능했다.
https://heodinkcodingdiary.tistory.com/158
queue알고리즘이 아니더라도 stack의 별도 변수에 append와 pop을 활용하면 바로 해결 할 수 있는 문제였다.
중요한건 stack변수에 아무것도 없고 ')'가 먼저 나오면 stack변수에 ')'가 추가되어 결국 무조건 NO가 나올 수 밖에 없으며
처음에 '('가 나오더라도 매칭되는 ')'가 없으면 stack에 변수가 남게 되어 NO가 나올 수 밖에 없다는 것이다.
import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
test = input().rstrip()
stack = []
for i in test:
if i == '(':
stack.append(i)
elif i == ')':
if stack and stack[-1] == '(':
stack.pop()
else:
stack.append(i)
if stack:
print("NO")
else:
print("YES")
<다른 사람 코드 참고>
와...... 이건 상상도 못했다. "()"이게 정상적인 경우니까 이걸 ""로 replace를 해주고 최종적으로 VPS에 남는게 있으면 NO, 없으면 YES......
최고!!!!!
for _ in range(int(input())):
VPS = input()
while "()" in VPS:
VPS = VPS.replace("()", "")
if VPS:
print("NO")
else:
print("YES")
이것도 참고할만 하다.elif에서 if len(stack) != 0:이면 pop()을 바로 해주고, else라면 바로 NO출력
import sys
n = int(sys.stdin.readline())
for i in range(n):
sequences = sys.stdin.readline()
stack = []
for VPS in sequences:
if VPS == "(":
stack.append("(")
elif VPS == ")":
if len(stack) != 0:
stack.pop()
else:
print("NO")
break
else:
if len(stack) !=0:
print("NO")
else:
print("YES")
728x90
반응형
'코드리뷰' 카테고리의 다른 글
[python_파이썬_pass]백준_10828번_스택_실버4_풀이 (0) | 2024.10.10 |
---|---|
[python_파이썬_pass]백준_10773번_제로_실버4_풀이 (1) | 2024.10.10 |
[python_파이썬_참고pass]백준_4949번_균형잡힌세상_실버4_풀이 (0) | 2024.10.09 |
★[알고리즘 학습_deque, stack, buffer_python_파이썬]백준_2164번_카드2_deque_알고리즘 기초 (1) | 2024.10.09 |
[python_파이썬_pass]백준_7568번_덩치_실버5_풀이 (0) | 2024.10.07 |