티스토리 뷰
우선 현정이의 역량으로 풀 수 있는 어려운 문제, 쉬운 문제의 개수를 각각 센다.
그러나 풀 수 있는 최대 개수 이상은 풀 수 없으며, 점수 카운팅 시 우선 순위는 어려운 문제다.
따라서 어려운 문제를 최대한 몇 개 풀 수 있는지 계산하고 min(hard, K)
푼 문제의 개수 만큼 풀 수 있는 최대 개수에서 제외시켜 준다. K -= cnt
그런 다음, 남은 개수 안에서 쉬운 문제를 얼마나 풀 수 있는지 계산한다. min(easy, K)
# 문제 개수, 현정이 역량, 현정이가 풀 수 있는 최대 개수
N, L, K = map(int, input().split())
easy, hard = 0, 0 # 문제 푼 개수
quiz = []
for _ in range(N):
sub1, sub2 = map(int, input().split())
if sub2 <= L:
hard += 1
elif sub1 <= L:
easy += 1
cnt, score = 0, 0
cnt += min(hard, K)
score = min(hard, K) * 140
K -= cnt
cnt += min(easy, K)
score += min(easy, K) * 100
print(score)
그러나 쉬운 문제의 경우에는, 어려운 문제를 다 풀고도 문제를 더 풀 수 있는 경우만 계산해주면 된다.
# hard 문제
ans = min(hard, K) * 140
# easy 문제
if hard < K :
ans += min(K-hard, easy) * 100
print(ans)
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 16769: Mixing Milk (0) | 2020.11.15 |
---|---|
[백준] 9037: The candy war (0) | 2020.11.15 |
[백준] 16165번: 걸그룹 마스터 준석이 (0) | 2020.11.15 |
[백준] 1920번: 수 찾기 (0) | 2020.11.15 |
[백준] 17389: 보너스 점수 (0) | 2020.11.15 |
댓글