백준 9012 괄호

cyr·2021년 11월 15일
0

title: 백준 9012
date: "2021-11-11T03:00:00.169Z"
template: "post"
draft: false
slug: "백준 9012 괄호 풀이"
category: "Coding test"
tags:

  • "Coding test"
    description: "백준 9012 괄호 풀이"

백준 9012 괄호

문제 이해

문자열 내의 모든 괄호가 닫혀 있는지 확인하는 문제이다.

접근 방법

문제에서 의도한것은 스택을 활용하여 스택의 맨 위의 값과 들어올 값이 같으면 스택의 맨 위 값을 삭제하는 풀이인 것 같으나,
replace를 문자열 길이의 절반 만큼 반복하여 푸는 것도 가능했다. 두가지 풀이 모두 시도해보았다.

풀이 1(replace를 활용)

n = int(input())

for _ in range(n):
  string = input()
  for _ in range(int(len(string)+1)):
    string = string.replace('()', '')
  print('NO' if string else 'YES')

풀이 2(stack 자료구조)

n = int(input())

for _ in range(n):
  string = input()
  stack = []
  for alpha in string:
    if stack and stack[-1]== '(' and alpha ==')':
      stack.pop()
    else:
      stack.append(alpha)
  print("NO" if stack else "YES")

둘 풀이의 속도 차이는 거의 없었다.
.

profile
개발

0개의 댓글