728x90
반응형
※ 문제링크
※ 기본문제
※ 문제풀이
while True:
check_list = []
sentence = input()
if sentence != '.':
k = 0
while k != len(sentence):
if sentence[k] == '(' or sentence[k] == ')' or sentence[k] == '[' or sentence[k] == ']':
if len(check_list) > 0:
if check_list[-1] + sentence[k] == '()'or check_list[-1] + sentence[k] == '[]':
check_list.pop()
else:
check_list.append(sentence[k])
else:
check_list.append(sentence[k])
k += 1
if len(check_list) == 0:
print('yes')
else:
print('no')
else:
break
해당문제는 스택을 활용하여 푸는 문제였다. 생각했던 문제풀이 방법은 아래와 같았다.
1. 종료문자 '.'가 들어올때까지 조건문 반복/ 종료문자가 들어오면 break로 반복문 종료
2. 문자열내부의 괄호문자를 저장할 리스트 생성 후 반복하며 괄호의 정상여부 확인
3. 들어온 문자열을 처음부터 끝까지 탐색하며 '()' 또는 '[]'형성되면 괄호문자리스트에서 해당 문자 삭제
4. 반복문 종료 후 괄호문자리스트에 값이 존재하면 'no'를 값이 없으면 'yes'를 출력
코드 작성 후 실행을 해보니 문제없이 정상적으로 작동하는 것을 확인하였다.
P.S 개발자가 되기위해 공부중입니다. 잘못된 부분을 댓글로 남겨주시면 학습하는데 큰 도움이 될 거 같습니다.
728x90
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 17298번 오큰수 / 사용언어 : 파이썬(python) (0) | 2021.12.19 |
---|---|
[BOJ] 1874번 스택 수열 / 사용언어 : 파이썬(python) (0) | 2021.12.17 |
[BOJ] 14888번 연산자 끼워넣기 / 사용언어 : 파이썬(python) (0) | 2021.12.17 |
[BOJ] 15652번 N과 M (4) / 사용언어 : 파이썬(python) (0) | 2021.12.16 |
[BOJ] 15651번 N과 M (3) / 사용언어 : 파이썬(python) (0) | 2021.12.16 |
댓글