-
백준 파이썬 17952번 : 과제는 끝나지 않아! 풀이기타/알고리즘 2020. 12. 15. 23:35반응형
https://www.acmicpc.net/problem/17952
과제를 최근에 나온 순서대로 하고있다. 그러므로 스택을 이용한 문제임을 알 수 있다
스택을 이용하면 조건 1, 2, 3을 자동으로 만족하기 때문에 간단히 풀 수 있다
굳이 데크를 이용하지 않아도 풀 수 있다
1. 과제의 정보를 입력받고 과제의 점수와 시간을 따로따로 저장해준다
2. 시간이 지남에 따라 가장 마지막에 받은 과제의 시간을 -1해준다
3. 가장 마지막 과제의 시간이 0이 되면 시간을 pop하고, 점수를 pop해준 뒤 정답에 집어넣는다
from collections import deque stk = deque() time = deque() answer = deque() n = int(input()) for i in range(n): x = list(map(int,input().split())) if x[0] == 1: stk.append(x[1]) time.append(x[2]) else: pass if time: time[-1] -= 1 if time[-1] == 0: time.pop() answer.append(stk.pop()) print(sum(answer))
반응형'기타 > 알고리즘' 카테고리의 다른 글
백준 파이썬 11501 : 주식 풀이 (시간초과 해결) (0) 2020.12.16 [파이썬] 리트코드 739. Daily Temperatures 풀이 (0) 2020.12.16 [파이썬] 리트코드 20. Valid Parentheses 풀이 (0) 2020.12.15 [파이썬] 리트코드 15. 3Sum 풀이 (0) 2020.12.14 [파이썬] 리트코드 121. Best Time to Buy and Sell stock 풀이 (0) 2020.12.14