문제
https://www.acmicpc.net/problem/4949
4949번: 균형잡힌 세상
하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마
www.acmicpc.net
# 이 문제는 조건을 이해할수 있다면 쉬운 문제이다.
# 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다.
# 모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다.
# 입력의 종료 조건으로 맨 마지막에 점(.)이 들어온다.
정답
# list 범위 에러가 발생한 이유 #
# if len(stack) != 0 and stack[-1] == "(":
# if len(stack) != 0 and stack[-1] == "[":
# 위 조건문에서 stack[-1] 부분과 len(stack) 부분을 반대로 적으면 list 범위 에러가 발생한다.
# 예를 들면 ) ( 입력이 들어왔을 때 stack이 비어있는데 stack[-1] 을 찾는것은 범위 에러가 발생한다.
# 그래서 stack의 길이를 먼저 비교해서 오류를 방지해준다. (and 문이기 때문에 첫 조건이 틀리면 그 if문을 틀림.)
* 전체 코드가 필요하신 분은 아래 github 주소를 방문해주세요
GitHub - JunSeokCheon/Codingtest: python for codingtest
python for codingtest. Contribute to JunSeokCheon/Codingtest development by creating an account on GitHub.
github.com
'알고리즘 > baekjoon' 카테고리의 다른 글
[알고리즘/baekjoon] 11866_요세푸스 문제 0(python) (0) | 2021.10.24 |
---|---|
[알고리즘/baekjoon] 10816_숫자 카드2(python) (0) | 2021.10.24 |
[알고리즘/baekjoon] 1920_수 찾기(python) (0) | 2021.10.22 |
[알고리즘/baekjoon] 1018_체스판 다시 칠하기(python) (0) | 2021.10.22 |
[알고리즘/baekjoon] 10989_수 정렬하기3(python) (0) | 2021.10.20 |
댓글