본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 2][Python] 2979번 : 트럭 주차

by 빛밤하늘 2021. 5. 20.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

2979번: 트럭 주차

첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장

www.acmicpc.net

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# readline을 사용하기 위해서 import합니다.
from sys import stdin

# 첫째 줄에 주차 요금 A, B, C를 공백으로 구분해 입력합니다.
# 각각 정수형으로 변환합니다.
# 1 <= C <= B <= A <= 100
A, B, C = map(int, stdin.readline().split(' '))

# 각 트럭들이 주차장에 도착한 시간과 주차장에서 떠난 시간을 공백으로 구분해 입력합니다.
# 각각 정수형으로 변환한 뒤, 리스트 변수에 넣어줍니다.
# 시간들은 1과 100 사이입니다.
truck1 = list(map(int, stdin.readline().split(' ')))
truck2 = list(map(int, stdin.readline().split(' ')))
truck3 = list(map(int, stdin.readline().split(' ')))

# 세 트럭 중 가장 마지막에 떠나는 시간을 저장하는 변수를 선언합니다.
last_time = max(truck1[1], truck2[1], truck3[1])

# 내야하는 주차 요금을 저장할 변수를 선언합니다.
parking_fee = 0

# 세 트럭 중 가장 마지막에 떠나는 시간만큼 1부터 반복합니다.
for time in range(1, last_time + 1):
    # 주차장에 있는 트럭의 개수를 저장할 변수를 선언합니다.
    truck_cnt = 0

    # 현재 시간에 첫 번째 트럭이 있다면
    if truck1[0] < time <= truck1[1]:
        # 트럭의 개수에 1을 더해줍니다.
        truck_cnt += 1
    # 현재 시간에 두 번째 트럭이 있다면
    if truck2[0] < time <= truck2[1]:
        # 트럭의 개수에 1을 더해줍니다.
        truck_cnt += 1
    # 현재 시간에 세 번째 트럭이 있다면
    if truck3[0] < time <= truck3[1]:
        # 트럭의 개수에 1을 더해줍니다.
        truck_cnt += 1

    # 주차장에 있는 트럭의 개수가 1대라면
    if truck_cnt == 1:
        # 최종 주차 요금에 A 요금 * 트럭 개수를 더해줍니다.
        parking_fee += A * truck_cnt
    # 주차장에 있는 트럭의 개수가 2대라면
    elif truck_cnt == 2:
        # 최종 주차 요금에 B 요금 * 트럭 개수를 더해줍니다.
        parking_fee += B * truck_cnt
    # 주차장에 있는 트럭의 개수가 3대라면
    elif truck_cnt == 3:
        # 최종 주차 요금에 C 요금 * 트럭 개수를 더해줍니다.
        parking_fee += C * truck_cnt

# 최종 주차 요금을 출력합니다.
print(parking_fee)

결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글