문제출처 SW Expert Academy
1. 문제소개
입력된 문자열의 괄호를 검사하는 프로그램 만들기
문자열 안에 모든 괄호 () {} 가 제대로
입력됐으면 1, 아니면 0을 출력
예를 들어 입력값이 'print('{} {}'.format(1, 2))'처럼
{}과 () 쌍이 맞으면 1이 출력된다
2. 풀이접근
글자를 리스트로 만들어 for 문으로 하나씩 검사하기
문자열 중 시작괄호 ( or { 이 나오면 스택리스트에 추가해줌
최근에 추가된 시작괄호와 쌍이 맞는 끝괄호 있는지 pop으로 검사 (stack 특성 활용)
3. 괄호검사 함수 정의
def check(string):
stack = []
for char in string:
if char == '(' or char == '{':
stack.append(char)
elif char == ')' or char == '}':
if not stack:
return 0
elif char == ')' and stack.pop() != '(':
return 0
elif char == '}' and stack.pop() !='{':
return 0
if stack:
return 0
return 1
4. 함수적용
T = int(input())
for tc in range(1, 1+T):
string = list(input())
print(f'#{tc} {check(string)}')