[백준][Python] 2979. 트럭 주차
Bronze Ⅱ 🔗2979. 트럭 주차
📝문제 요약
문제 설명
상근이는 트럭을 총 세 대 가지고 있다. 오늘은 트럭을 주차하는데 비용이 얼마나 필요한지 알아보려고 한다.
상근이가 이용하는 주차장은 주차하는 트럭의 수에 따라서 주차 요금을 할인해 준다.
트럭을 한 대 주차할 때는 1분에 한 대당 A원을 내야 한다. 두 대를 주차할 때는 1분에 한 대당 B원, 세 대를 주차할 때는 1분에 한 대당 C원을 내야 한다.
A, B, C가 주어지고, 상근이의 트럭이 주차장에 주차된 시간이 주어졌을 때, 주차 요금으로 얼마를 내야 하는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100)
다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장에서 떠난 시간이다. 도착한 시간은 항상 떠난 시간보다 앞선다. 입력으로 주어지는 시간은 1과 100사이 이다.
출력
첫째 줄에 상근이가 내야하는 주차 요금을 출력한다
✏️문제 풀이
- 주차요금
a
,b
,c
를 입력 - 3개의 줄에 트럭이 주차장에 도착한 시간과 주차장에서 떠난 시간을 입력 받아
time
리스트에 저장 - 100까지의 시간이지만, 최대시간까지만 확인하기 위해서 가장 끝 시간을 구함
parking
시간은 100까지이므로 100개의 0이 있는 리스트 저장- 주차장 도착 시간부터 주차장 떠난 시간까지의
parking
리스트의 인덱스에 +1을 하여 트럭의 대수를 셈 - 요금을 저장할
price
초기화 end_time
까지의 트럭대수를 확인하여 요금 계산하여price
에 더해줌- 1대일 경우 요금 :
a
- 2대일 경우 요금 :
2 * b
- 3대일 경우 요금 :
3 * c
- 1대일 경우 요금 :
- 주차 요금 출력
코드와 함께 보는 풀이
# 주차요금 a, b, c를 입력
a, b, c = map(int, input().split())
# 트럭이 주차장에 도착한 시간과 주차장에서 떠난 시간을 입력 받아 time 리스트에 저장
time = [list(map(int, input().split())) for _ in range(3)]
# 가장 끝시간을 구함
end_time = max(time[i][1] for i in range(3))
# 100개의 0이 있는 리스트 저장
parking = [0] * 100
for i in range(3) :
# 주차장 도착 시간부터 주차장 떠난 시간까지
for j in range(time[i][0], time[i][1]):
# parking 리스트의 인덱스에 +1을 하여 트럭의 대수를 셈
parking[j] += 1
# 주차요금 초기화
price = 0
# end_time까지의 트럭대수를 확인하여 요금 계산하여 price에 더해줌
for i in range(end_time):
# 주차된 트럭이 1대일때 요금은 a
if parking[i] == 1:
price += a
# 주차된 트럭이 2대일때 요금은 b * 2
elif parking[i] == 2:
price += b * 2
# 주차된 트럭이 3대일때 요금은 c * 2
elif parking[i] == 3:
price += c * 3
# 주차 요금 출력
print(price)
💯제출 코드
a, b, c = map(int, input().split())
time = [list(map(int, input().split())) for _ in range(3)]
end_time = max(time[i][1] for i in range(3))
parking = [0] * 100
for i in range(3) :
for j in range(time[i][0], time[i][1]):
parking[j] += 1
price = 0
for i in range(end_time):
if parking[i] == 1:
price += a
elif parking[i] == 2:
price += b * 2
elif parking[i] == 3:
price += c * 3
print(price)
댓글남기기