백준 17952 - 과제는 끝나지 않아! (파이썬)
글 작성자: pental

https://www.acmicpc.net/problem/17952
풀이
문제 이해
- 교수님이 과제를 주는데, 과제 수행 도중 새로운 과제가 주어질 수도 있다.
- 학생은 현재 수행 중인 과제를 잠시 미뤄두고 새로운 과제를 시작해야 한다.
- 한 번의 작업이 끝나면, 수행 중이던 과제를 이어서 해야 한다.
- 만약 과제가 끝나면 점수를 얻게 된다.
- 모든 과제가 끝난 후 얻은 총 점수를 출력하는 문제이다.
과제 수행 로직
- info[0] == 1 → 새로운 과제 주어짐
- 과제 점수 a, 소요 시간 t를 입력받는다.
- 만약 t == 1이면 즉시 완료되므로 score에 a를 추가한다.
- 그렇지 않다면 (a, t-1)을 스택에 저장한다.
- info[0] == 0 → 현재 진행 중인 과제 수행
- 스택이 비어 있지 않다면, 가장 최근의 (a, t)를 pop()
- t == 1이면 과제 완료 → score += a
- 그렇지 않다면 (a, t-1)을 다시 스택에 저장.
코드
# 백준 17952 - 과제는 끝나지 않아! # 분류 : 구현, 자료 구조, 스택 import sys input = sys.stdin.readline N = int(input()) stack = [] score = 0 for _ in range(N) : info = list(map(int, input().split())) if info[0] == 0 : if len(stack) != 0 : a, t = stack.pop() if t == 1 : score += a else : stack.append((a, t - 1)) if info[0] == 1 : a = info[1] t = info[2] if t == 1 : score += a else : stack.append((a, t - 1)) print(score)
이 글은
(새창열림)
본 저작자 표시, 비영리 규칙 하에 배포할 수 있습니다. 자세한 내용은 Creative Commons 라이선스를 확인하세요.
Creative Commons
본 저작자 표시
비영리
'Programming > 백준' 카테고리의 다른 글
백준 2503 - 숫자 야구 (파이썬) (1) | 2025.03.09 |
---|---|
백준 17944 - 퐁당퐁당 1 (파이썬) (0) | 2025.03.08 |
백준 19598 - 최소 회의실 개수 (파이썬) (0) | 2025.03.06 |
백준 1300 - K번째 수 (파이썬) (0) | 2025.03.06 |
백준 1303 - 전쟁 - 전투 (파이썬) (0) | 2025.03.06 |
댓글
이 글 공유하기
다른 글
-
백준 2503 - 숫자 야구 (파이썬)
백준 2503 - 숫자 야구 (파이썬)
2025.03.09 -
백준 17944 - 퐁당퐁당 1 (파이썬)
백준 17944 - 퐁당퐁당 1 (파이썬)
2025.03.08 -
백준 19598 - 최소 회의실 개수 (파이썬)
백준 19598 - 최소 회의실 개수 (파이썬)
2025.03.06 -
백준 1300 - K번째 수 (파이썬)
백준 1300 - K번째 수 (파이썬)
2025.03.06
댓글을 사용할 수 없습니다.