Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 케이티 에이블스쿨 기자단
- 티스토리챌린지
- kt 에이블스쿨 6기 빅프로젝트
- SQLD
- 케이티 에이블스쿨 6기 spring
- 케이티 에이블스쿨 6기
- 케이티 에이블스쿨 6기 java
- 프로그래머스
- 알고리즘
- 케이티 에이블스쿨 6기 ai
- kt 에이블스쿨 6기 미니 프로젝트
- KT AIVLE
- 케이티 에이블스쿨 6기 후기
- 백준
- kt 에이블스쿨 기자단
- 판다스
- 구현
- 앙상블
- 머신러닝
- 에이블 기자단
- 데이터 프레임
- KT 에이블스쿨
- kt 에이블스쿨 6기
- 오블완
- kt 에이블스쿨 6기 ai
- kt aivle school
- 파이썬
- 케이티 에이블스쿨
- 백준 사탕 게임
- 네트워크
Archives
- Today
- Total
미식가의 개발 일기
[백준/Python] #2504번 괄호의 값 본문
문제
- 올바른 괄호열이란 '()'나 '([[]])'처럼 괄호가 짝을 맞춰 올바르게 배치된 문자열을 의미한다.
- 괄호의 값 계산 조건
<괄호열 X, Y에 대해>
- ‘()’ 인 괄호열의 값은 2
- ‘[]’ 인 괄호열의 값은 3이다.
- ‘(X)’ 의 괄호값은 2×값(X)
- ‘[X]’ 의 괄호값은 3×값(X)
- 값(XY)= 값(X)+값(Y)
- 올바르지 않은 괄호열이면 0 출력
해결 방법
- 열린 괄호는 스택에 넣어주고 닫힌 괄호는 스택에서 빼준다. 단, 스택이 비어있거나 스택에 마지막으로 들어온 값에 대응되는 괄호가 없다면 0을 answer로 지정한다.
- 괄호 안 괄호에 대해서는 값이 "("이라면 2, "["라면 3을 tmp에 계속해서 곱해주고, ")", "]"로 바로 직전에 짝이 있다면 answer에 현재까지의 tmp 값을 더해준다. 그 다음 스택에서는 pop으로 쌍에 맞는 괄호 값을 지워주고 다시 tmp에서 각각 2와 3으로 나눠주며 계산을 반복한다.
- 스택의 값이 비어있다면 모든 쌍이 다 맞다는 뜻이므로 answer 값을 출력하고, 그렇지 않다면 대응되지 않는 괄호가 있다는 의미이므로 0을 출력한다.
정답
import sys
input = sys.stdin.readline
def cal(s):
answer = 0
tmp = 1
stack = []
for i in range(len(s)):
if string[i] == '(':
stack.append('(')
tmp *= 2
elif string[i] == '[':
stack.append('[')
tmp *= 3
elif string[i] == ')':
if not stack or stack[-1] == '[':
answer = 0
break
if string[i-1] == '(':
answer += tmp
stack.pop()
tmp //= 2
else:
if not stack or stack[-1] == '(':
answer = 0
break
if string[i-1] == '[':
answer += tmp
stack.pop()
tmp //= 3
if stack:
print(0)
else:
print(answer)
if __name__ == "__main__":
string = list(input().rstrip())
cal(string)
반응형
'Python > Algorithm' 카테고리의 다른 글
[백준/Python] #1062번 가르침 (0) | 2025.04.10 |
---|---|
[백준/Python] #14888번 연산자 끼워넣기 (0) | 2025.04.02 |
[백준/Python] #1748번 수 이어 쓰기 1 (0) | 2024.12.10 |
[백준/Python] #6064번 카잉 달력 (1) | 2024.12.08 |
[백준/Python] #1107번 리모컨 (0) | 2024.12.05 |