Algorithm & DataStructure
[Backjoon] 트럭 주차
GeonWoo Kim
2021. 1. 2. 09:38
문제를 처음 읽었을 때 어떻게 하면 코드를 줄이면서 구현할 수 있을지 생각해봤다. 회의실 배정 문제같은 그리디 문제에서도 범위와 관련한 문제가 있었는데 이 문제에서는 겹치는 범위를 처리해야 했던 문제였다. 겹치는 범위를 처리하기 위해서 단순히 범위를 표현하는 배열을 만들어두고 그 배열에 겹치는 범위를 표시했다. 아래는 해당 소스코드이다.
one, two, three = list(map(int, input().split(" ")))
fee_table = [0 for _ in range(100)]
for _ in range(3):
start, end = list(map(int, input().split(" ")))
for idx in range(start-1, end-1):
fee_table[idx] += 1
answer = 0
for fee in fee_table:
if fee == 1:
answer += (fee * one)
elif fee == 2:
answer += (fee * two)
elif fee == 3:
answer += (fee * three)
print(answer)