[문제 링크] 👉
설명
두 회사 A, B중 더 적게 수도 요금을 부담해도 되는 곳을 고른다. 수도 요금은 한 달동안 사용한 수도의 양에 따라 정해진다.
- A사 : 1리터당 P원의 돈을 내야 한다.
- B사 : 기본 요금이 Q 원이고, 월간 사용량이 R 리터 이하인 경우 기본 요금만 청구된다.
- 하지만 R 리터보다 많은 양을 사용한 경우 초과량에 대해 1리터당 S원의 요금을 내야한다.
한 달간 사용하는 수도의 양이 W 리터라고 할 때 요금이 더 저렴한 회사를 골라 그 요금을 출력하라.
풀이
설명에 나온대로 구현하면 된다.
주의할 점은 B회사의 요금 계산에서 R 리터를 초과할 경우, 기본 요금 Q + 초과량 1리터 당 S원을 내야한다는 점이다.
Solution
test_case = int(input())
def A(p, w):
return p * w
def B(q, r, s, w):
if w <= r:
return q
else:
return q + (s * (w - r))
for t in range(1, test_case + 1):
p, q, r, s, w = map(int, input().split())
a = A(p, w)
b = B(q, r, s, w)
if a < b:
print("#%d %d" %(t, a))
else:
print("#%d %d" %(t, b))
short code
test_case = int(input())
for t in range(1, test_case + 1):
p, q, r, s, w = map(int, input().split())
a = p * w
b = q
if r < w:
b += s * (w - r)
if a < b:
print("#%d %d" %(t, a))
else:
print("#%d %d" %(t, b))
👩💻 회고
어렵지 않은 문제였지만, B회사의 요금을 계산하는 곳에서 약간 어리둥절했다. 테스트 케이스를 보고 금방 알아챘지만 못 풀고 풀이라도 봤으면 허망했을 것 같다.
'SWEA' 카테고리의 다른 글
[SWEA] 1961. 숫자 배열 회전 (Python/D2) (1) | 2024.10.18 |
---|---|
[SWEA] 1976. 시각 덧셈 (Python/D2) (0) | 2024.10.16 |
[SWEA] 1945. 소인수분해 (Python/D2) (0) | 2024.10.16 |
[SWEA] 21425. += (Python/D2) (0) | 2024.10.16 |
[SWEA] 5162. 두가지 빵의 딜레마 (Python/D2) (2) | 2023.11.19 |