[백준/파이썬] 17952번

민정·2023년 8월 18일
0

[백준/파이썬]

목록 보기
167/245
post-thumbnail

📍백준 17952번 문제

https://www.acmicpc.net/problem/17952

코드

import sys

input = sys.stdin.readline

n = int(input())
stack = []
res = 0
for _ in range(n):
    li = list(map(int, input().split()))
    if li[0] == 1:
        stack.append([li[1], li[2]-1])
    elif stack and li[0] == 0:
        stack[-1][-1] = stack[-1][-1]-1
    elif not stack and li[0] == 0:
        continue
    if stack[-1][-1] == 0:
        res += stack[-1][0]
        stack.pop()
print(res)

풀이

  • li[0]의 값이 1이라면 값을 [점수, 해결시간] 의 형태로 stack에 추가한다. 이 때, 과제는 받자마자 시작하므로 (해결시간 - 1) 을 한다
    li[0]의 값이 0이라면 스택이 있는지 / 없는지 경우의 수를 나누어 풀어주면 된다. 스택이 있는 경우, 스택의 마지막 값 중 (해결시간 - 1) 을 한다.
profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글