참고: https://www.acmicpc.net/problem/9012
✔️ 문제
문제는 다음과 같다.
✔️ 풀이
VPS라는 것이 올바른 괄호 문자열 "()"을 의미하는데,
예를 들어 ~~ 문자열이다. 라고 주어진 부분에서
힌트를 얻을 수 있었다.
풀다보니까 처음에 접근했을 때는
왼쪽 괄호와 오른쪽 괄호의 갯수 차이로 접근했는데,
이렇게 하니 예제 2번에서 (()(() 부분에서 막히게 됐다.
해당 예제는 갯수가 같은데 VPS가 아닌 문자열이 들어있기 때문에
NO를 출력해야한다. 그래서 해당 문자열을 또 예외처리하니
예제 1번에서 동일한 문자열이 들어있으면 NO를 출력하게 되었다.
그래서 문자열 제거함수를 사용하기로 생각했고,
replace 내장 함수를 사용하였다.
import sys
input = sys.stdin.readline
n=int(input())
for _ in range(n):
ps = input().rstrip()
while '()' in ps:
ps = ps.replace('()', '')
if ps == '': print("YES")
else: print("NO")
온전히 머릿속에서 나온 코드로 모범 답안을 보니
동일한 코드가 내 머리에서 나왔다는 것이 신기하고,
이러한 사고 방식을 많이 적용해야겠다는 생각이 들었다.
화이팅 💪
'알고리즘(algo) > 백준' 카테고리의 다른 글
[백준] 1406번 - 에디터 (0) | 2023.02.05 |
---|---|
[백준] 1874번 - 스택 수열 (0) | 2023.02.05 |
[백준] 9093번 - 단어 뒤집기 (0) | 2023.02.04 |
[백준] 10828번 - 스택 (0) | 2023.02.03 |
[백준] 11729번 - 하노이 탑 이동 순서 (0) | 2023.02.03 |