반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
난이도는 1부터 5까지 있으며, 문제 N개 중에서 풀어야 하는 난이도별 문제 개수가 주어집니다.
다음 문제로 넘어갈 때 오버헤드가 있으며, 같은 난이도는 '두 문제를 푸는 데 걸리는 시간 차이' 만큼 필요하고 난이도를 증가시키는 경우에는 60분의 시간이 필요합니다.
반응형
3. 코드
import sys
input = sys.stdin.readline
# 입력
N = int(input())
level = list(map(int, input().split())) # 난이도별 풀 문제
exam = []
for _ in range(N):
exam.append(list(map(int, input().split())))
exam.sort()
res = 0
before_level = 1
before_time = 0
first_clear = True
for i, j in exam:
if level[i-1] > 0:
res += j
level[i-1] -= 1
# 처음 푼 경우
if first_clear:
first_clear = False
# 난이도가 같은 경우
elif before_level == i:
res += (j - before_time)
# 난이도가 다른 경우
elif before_level != i:
res += 60
before_level = i
before_time = j
print(res)
난이도별로 빨리 풀 수 있는 문제를 골라 풀면 됩니다.
다만 다음 문제로 넘어가는 데에 걸리는 오버헤드 계산이 좀 어렵습니다. 처음 푸는 경우에는 오버헤드가 아예 존재하지 않으므로 더하지 않습니다.
난이도가 같은 경우에는 문제 푸는 시간 차이만큼 더해주고, 난이도가 오른 경우에는 60을 더해줍니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 29752 최장 스트릭 - 파이썬(Python) (0) | 2023.09.18 |
---|---|
[구현/수학] 백준 29751 삼각형 - 파이썬(Python) (0) | 2023.09.18 |
[구현/수학] 백준 28464 Potato - 파이썬(Python) (0) | 2023.09.04 |
[구현/수학] 백준 29197 아침 태권도 - 파이썬(Python) (0) | 2023.08.21 |
[구현/수학] 백준 29196 소수가 아닌 수 2 - 파이썬(Python) (0) | 2023.08.21 |
댓글