GW LABS

[Backjoon] 트럭 주차 본문

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)

'Algorithm & DataStructure' 카테고리의 다른 글

[Backjoon] 촌수계산  (0) 2021.02.28
[Backjoon] 소수&팰린드롬  (0) 2021.01.12
[Backjoon] 회전하는 큐  (0) 2020.12.18
[Backjoon] 통나무 건너뛰기  (0) 2020.12.13
[Backjoon] 톱니바퀴  (0) 2020.12.10
Comments