[문제]
https://www.acmicpc.net/problem/2979
[풀이]
트럭 세 대의 도착시간과 떠난 시간을 table 리스트에 담는다. 그 후 떠난 시간 세 개를 max함수로 비교해 가장 마지막으로 떠난 트럭의 시간을 구해 해당 크기의 리스트 parking을 만들어 모두 0으로 초기화한다.
콘솔에 입력한 시간은 1부터 시작하나 리스트의 인덱스는 0부터 시작하기 때문에 도착시간과 떠난 시간 모두 각 값에서 1씩 빼 parking 리스트의 해당 인덱스의 값을 1씩 증가시킨다.
위의 결과로 5초에 차가 세 대 다 있다면 parking[4] = 3, 두대만 있다면 parking[4] = 2 이런 식으로 값이 입력된다.
총 주차사용요금을주차 사용요금을 구할 변수 fee를 0으로 초기화한 후 parking 전체를 돌아 값이 1일 경우, 2일 경우, 3일 경우에 맞게 주차요금을 더해주어 총 주차 사용요금을 구한다.
[코드]
if __name__ == "__main__":
one_fee, two_fee, three_fee = map(int, input().split())
table = [list(map(int, input().split())) for _ in range(3)]
maxtime = max(table[0][1], table[1][1], table[2][1])
parking = [0] * (maxtime - 1)
for car in table:
for i in range(car[0] - 1, car[1] - 1):
parking[i] += 1
fee = 0
for i in parking:
if i == 1:
fee += one_fee
elif i == 2:
fee += 2 * two_fee
elif i == 3:
fee += 3 * three_fee
print(fee)
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 1731번 추론 (0) | 2021.06.16 |
---|---|
[Python] BOJ/백준 2810번 컵홀더 (0) | 2021.06.15 |
[Python] BOJ/백준 2789번 유학 금지 (0) | 2021.06.15 |
[Python] BOJ/백준 1152번 단어의 개수 (0) | 2021.06.14 |
[Python] BOJ/백준 2037번 문자메시지 (0) | 2021.06.14 |