728x90
반응형
https://www.acmicpc.net/problem/17952
17952번: 과제는 끝나지 않아!
성애는 이번 학기에 전공을 정말 많이 듣는다. 이로 인해 거의 매일을 과제를 하면서 보내고 있다. 그런데도 과제가 줄어들 기미가 보이지 않는데, 바로 분단위로 과제가 추가되고 있기 때문이
www.acmicpc.net
Python
stack = []
ans = 0
for _ in range(int(input())):
cmd = list(map(int,input().split()))
if cmd[0] == 1:
if cmd[2] == 1:
ans += cmd[1]
else:
stack.append([cmd[1],cmd[2]-1])
continue
if stack:
stack[-1][1] -= 1
if stack[-1][1] == 0:
x = stack.pop()
ans += x[0]
print(ans)
짧은 풀이
ans에 덧셈하는 경우는
- 1분짜리 과제
- 받자마자 바로 풀이하므로 스택에 넣을 필요 없이 바로 덧셈
- 스택에서 넣은 상태에서 0분이 된 과제
예제 입력 2에 대해 스택과 ans의 변화 상태를 적어보자면,
5
1 10 3
0
1 100 2
1 20 1
0
stack | ans |
[10,2] | 0 |
[10,1] | 0 |
[10,1] [100,1] | 0 |
[10,1] [100,1] | 0+20 <- 1번 경우 |
[10,1] | 0+20+100 <- 2번 경우 |
728x90
반응형
'Algorithm Problems' 카테고리의 다른 글
[백준] [Python] 11047번 동전0 - Greedy (0) | 2021.05.25 |
---|---|
[백준] [Python] 17298번 오큰수 - 스택 (0) | 2021.05.25 |
[백준] [Python] 10799번 쇠막대기 (0) | 2021.05.22 |
[백준] [Python] 2493번 탑 - 스택 - [대표예제] (0) | 2021.05.22 |
[백준] [Python] 14889번 스타트와 링크 (0) | 2021.05.19 |