-
백준 파이썬 17952번 : 과제는 끝나지 않아! 풀이기타/알고리즘 2020. 12. 15. 23:35반응형
https://www.acmicpc.net/problem/17952
17952번: 과제는 끝나지 않아!
성애는 이번 학기에 전공을 정말 많이 듣는다. 이로 인해 거의 매일을 과제를 하면서 보내고 있다. 그런데도 과제가 줄어들 기미가 보이지 않는데, 바로 분단위로 과제가 추가되고 있기 때문이
www.acmicpc.net
과제를 최근에 나온 순서대로 하고있다. 그러므로 스택을 이용한 문제임을 알 수 있다
스택을 이용하면 조건 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