https://www.acmicpc.net/problem/9012
> 스택
우선 input으로 모든 입력값들을 받은 후 입력값들이 각각 올바른 문자열인지 판단하는 vps 함수를 구현하여 해결했다.
문자열을 하나씩 입력 받기 위한 리스트로 target 변수를 선언한다. 만일 들어오려는 문자열이 '('이면 리스트에 append하고 아니라면 가장 마지막에 들어온 괄호 '('을 리스트에서 빼준다.
그런데 그 과정에서 다음과 같은 문자열은 마지막 ')'가 들어왔을 때 리스트에 '('가 모두 제거되어 없기 때문에 pop함수를 실행하면 에러가 난다.
'(()))'
따라서 try-except문을 활용하여 에러가 날때는 NO 문자열을 반환해주도록 구현하였다.
vps 함수 내 반복문을 모두 실행했을 때 target 리스트 안에 아무런 값이 없으면 올바른 문자열이기 때문에 'YES'를 그렇지 않으면 'NO'를 반환하도록 한다.
'python > 알고리즘 문제풀이' 카테고리의 다른 글
[백준 | 파이썬3] 1012. 유기농 배추- dfs (2) | 2021.08.20 |
---|---|
[백준 | 파이썬3] 11404. 플로이드- 플로이드 워셜 (0) | 2021.08.15 |
[백준 | 파이썬3] 2805. 나무자르기 - 이분탐색 (0) | 2021.08.11 |
[백준 | 파이썬3] 2579. 계단오르기 - 동적계획법 (4) | 2021.08.10 |
[백준 | 파이썬3] 11650. 좌표 정렬하기- 정렬 (0) | 2021.08.09 |