1284

HoRi·2022년 7월 20일
0

SWEA_PY

목록 보기
21/32

1284. 수도 요금 경쟁

삼성전자에 입사한 종민이는 회사 근처로 이사를 하게 되었다.
그런데 집의 위치가 두 수도 회사 A, B 중간에 위치하기에 원하는 수도 회사를 선택할 수 있게 되었는데, 두 회사 중 더 적게 수도 요금을 부담해도 되는 회사를 고르려고 한다.
종민이가 알아본 결과 두 회사의 수도 요금은 한 달 동안 사용한 수도의 양에 따라 다음과 같이 정해진다.
A사: 1리터당 P원의 돈을 내야 한다.
B사: 기본 요금이 Q원이고, 월간 사용량이 R리터 이하인 경우 요금은 기본 요금만 청구된다. 하지만 R리터보다 많은 양을 사용한 경우 초과량에 대해 1리터당 S원의 요금을 더 내야 한다.
종민이의 집에서 한 달간 사용하는 수도의 양이 W리터라고 할 때, 요금이 더 저렴한 회사를 골라 그 요금을 출력하는 프로그램을 작성하라.

[입력]

각 테스트 케이스마다 첫 번째 줄에 위에 본문에서 설명한 대로 P, Q, R, S, W(1이상 10000이하의 자연수)가 순서대로 공백 하나로 구분되어 주어진다.

[출력]

각 테스트 케이스마다 '#t'(t는 테스트 케이스의 번호를 의미하며 1부터 시작)를 출력하고, 종민이가 내야하는 수도 요금을 출력한다.

코딩

T = int(input())					# 입력 받은 값을 정수형으로 변환해서 T에 저장

for i in range(1, T+1):				# 1부터 T까지 1씩 증가하는 반복문
    P, Q, R, S, W = list(map(int, input().split()))
    								# P, Q, R, S, W를 순서대로 공백을 기준으로 값을 받아와서 정수형으로 변환 후 저장
    
    FeeA = W * P					# 위의 조건에 따라 A사에 요금을 지불할 경우 종민이가 사용한 W와 리터당 기본 요금 P를 곱한 값을 FeeA에 저장
    if R > W:						# B사는 R리터 이상 사용하게 되면 추가 요금이 붙기 때문에 R리터 이하와 초과로 구분하여 계산
        FeeB = Q					# 종민이가 사용한 W가 R보다 작으면 B사의 기본 요금인 Q를 FeeB에 저장
    else:							# 종민이가 사용한 W가 R보다 많다면
        FeeB = Q + S * (W - R)		# 기본 요금(Q) + 추가 요금(S)*(종민이가 한 달에 사용한 수도 양(W) - B사의 기준 수도 양(R))을 계산해서 FeeB에 저장
    print('#{} {}'.format(i, min(FeeA, FeeB)))
    								# format함수를 사용해서 테스트 케이스 번호와 더 적게 사용된 요금을 출력
                                    # 더 적게 사용된 요금은 위에서 계산된 A사(FeeA)와 B사(FeeB)에 min함수를 사용해서 더 작은 값을 출력



모든 출처는 SW Expert 아카데미에 있습니다.

해당 글은 영리적 목적이 아닌 학습의 기록으로 사용되었습니다. 오기나 잘못된 부분은 말씀해주시면 수정하겠습니다.

profile
무지성 작성소

0개의 댓글