일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코테준비
- leetcode
- 알고리즘문제풀이
- Trie
- 알고리즘
- Leet Coding Challenge
- 백준
- 프로그래머스
- SWIFTUI
- 카카오 코딩테스트
- IOS
- 독서노트
- 릿코드
- DTFT
- 컨볼루션
- 코테
- leet code
- 알고리즘 문제풀이
- backjoon
- SWIFT
- PYTHON
- 이산신호처리
- 트라이
- 파이썬
- DSP
- 스위프트
- 전자공학
- dft
- 코딩테스트
- 신호처리
Archives
- Today
- Total
매일 매일 성장하는 섭섭군
[Seop's의 코드풀이] Back_Joon 9012 괄호 본문
반응형
이번에 살펴 볼 문제는 올바른 괄호인가를 판단하는 문제입니다.
먼저 문제의 조건과 입출력이 어떻게 진행이 되는지 한번 살펴보도록 하겠습니다.
소괄호로만으로 이루어진 문자열이 주어졌습니다.
덕분에 우리는 "(" 와 ")"만 구분하면됩니다.
저는 본 문제에서 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")
소괄호만 있는 문제여서 그리 어렵지 않게 해결 할 수 있는 문제였습니다.
다음 포스팅에서 또 찾아뵙도록 하겠습니다.
반응형
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[Seop's의 코드풀이] 백준 1431 시리얼 번호 - Python (0) | 2020.04.26 |
---|---|
[Seop's의 코드풀이] Back_Joon 10825 국영수 , Python (0) | 2020.04.21 |
[Seop's의 코드풀이] Back_Joon 10828 스택 python (0) | 2020.04.20 |
[Seop's의 코드풀이] Back_Joon_2798_블랙잭_by_Python (0) | 2019.10.25 |
[Seop's의 코드풀이] Back_Joon_1085_직사각형에서_탈출 (0) | 2019.10.24 |
Comments