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
- 우선순위큐
- 프로그래머스
- 2020 카카오 인턴십
- 이분탐색
- 트라이
- 파이썬
- 백준
- 구현
- 브루트포스
- GIT
- 2018 KAKAO BLIND RECRUITMENT
- 2020 KAKAO BLIND RECRUITMENT
- 플로이드와샬
- 다익스트라
- BFS
- 스택
- 투 포인터
- 투포인터
- 플로이드 와샬
- 2019 KAKAO BLIND RECRUITMENT
- 크루스칼
- 시뮬레이션
- 비트마스킹
- 백트래킹
- 로봇 청소기
- Spring
- 최소 신장 트리
- 2021 KAKAO BLIND RECRUITMENT
- SWEA
- 조합
Archives
- Today
- Total
개발조아
[BOJ/백준] 백준 2504 괄호의 값 파이썬 본문
728x90
문제 링크 : https://www.acmicpc.net/problem/2504
stack 응용 문제이다.
'(', '[' 여는 괄호가 나오면 스택에 넣고
')',']' 닫는 괄호가 나오면 값을 계산해서 스택에 넣는다.
스택의 탑에 올바른 짝이라면 그에 맞는 숫자 넣고
괄호가 아니라 숫자라면 괄호가 나올때까지 pop해서 더한 후에 괄호에 맞는 숫자를 더하고 다시 스택에 넣는다.
중간에 괄호가 안맞는게 온다면 0을 출력하고 끝낸다.
입력 1번
(()[[]])([]) 입력이 들어올 때 스택 상태
더보기
맨 오른쪽이 탑
(
( (
( ( ) <- 계산 후 ( 2
( 2 [
( 2 [ [
( 2 [ [ ] <- 계산 후 ( 2 [ 3
( 2 [ 3 ] <- 계산 후 ( 2 9
( 2 9 ) <- 계산 후 22
22 (
22 ( [
22 ( [ ] -> 계산 수 22 ( 3
22 ( 3 ) -> 계산 수 22 6
최종 22, 6 만 남고 스택 검사해서 괄호 남아있는지 체크 후 출력
최종적으로 마지막에 스택한번 검사하고 합을 구해서 출력한다.
from sys import stdin
input = stdin.readline
input_data = input().strip()
def solv():
s = []
for c in input_data:
if c in '([':
s.append(c)
elif s:
if c == ')':
if s[-1] == '(':
s.pop()
s.append(2)
elif s[-1] == '[':
print(0)
return
else:
s.append(sum_num(s,'(',2))
else:
if s[-1] == '[':
s.pop()
s.append(3)
elif s[-1] == '(':
print(0)
return
else:
s.append(sum_num(s,'[',3))
else:
print(0)
return
answer = 0
for c in s:
if c in ['(',')','[',']']:
print(0)
return
else:
answer += c
print(answer)
def sum_num(s,target,op):
rst = 0
while s and s[-1] not in ['(',')','[',']']:
rst += s.pop()
if s and s[-1] == target:
s.pop()
return rst*op
else:
return 0
solv()
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 13459 구슬 탈출 파이썬 (0) | 2021.08.18 |
---|---|
[BOJ/백준] 백준 1022 소용돌이 예쁘게 출력하기 파이썬 (0) | 2021.08.15 |
[BOJ/백준] 백준 5430 AC 파이썬 (0) | 2021.08.10 |
[BOJ/백준] 백준 22351 수학은 체육과목 입니다 3 파이썬 (0) | 2021.08.07 |
[BOJ/백준] 백준 22352 항체인식 파이썬 (0) | 2021.08.07 |
Comments