1번: 내가 작성한 코드 (sorted 이용)
n, l, k = map(int, input().split())
problems = []
for _ in range(n):
easy, hard = map(int, input().split())
problems.append((easy, hard))
problems = sorted(problems, key=lambda x: x[1])
solved = 0
total = 0
for problem in problems:
if solved >= k :
break
if problem[0] <= l:
total += 100
if problem[1] <= l:
total += 40
solved += 1
print(total)
2번: 1번 성공 후 참고한 코드
N, L, K = map(int, input().split())
easy, hard = 0, 0
for i in range(N):
sub1, sub2 = map(int, input().split())
if sub2 <= L:
hard += 1
elif sub1 <= L:
easy += 1
ans = min(hard, K) * 140
if hard < K:
ans += min(K-hard, easy) * 100
print(ans)
3번: 배운 점
계산할 변수를 적절하게 나누고, 분기문을 적절하게 활용하면 코드가 더 간단해질 수 있다!
'> 알고리즘 문제 풀이 > BOJ' 카테고리의 다른 글
16769-Mixing Milk (python, 파이썬) (0) | 2020.10.16 |
---|---|
9037-The candy war (python, 파이썬) (0) | 2020.10.15 |
16165-걸그룹 마스터 준석이 (python, 파이썬) (0) | 2020.10.15 |
1991-트리 순회 (python, 파이썬) (0) | 2020.10.15 |
*1939-중량제한 (python, 파이썬) (0) | 2020.10.15 |
댓글