반응형
[문제 출처]
https://www.acmicpc.net/problem/1267
1267번: 핸드폰 요금
동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
[문제 풀이]
동호가 n번의 통화를 했을 때, 영식 요금제와 민식 요금제 중에 더 저렴한 요금제를 찾는 문제이다.
영식 요금제는 30초마다 10원씩 청구되고, 민식 요금제는 60초마다 15원씩 청구된다.
- 영식 요금제
~29s : 10원
30 ~ 59s : 20원
60 ~ 89s : 30원
...
- 민식 요금제
~59s : 15원
60~ 119s : 30원
120 ~ 179s : 45원
각각의 경우에 대해서 동호가 내야 할 요금을 구하고 더 저렴한 요금제와 그때의 가격을 출력한다.
영식일 경우 Y, 민식일 경우 M, 같을 경우 Y M을 출력한다.
요금을 계산하기 위해서 통화시간을 30과 60으로 나눠 몫을 올림하고 단위 요금인 10과 15를 곱해주었다.
하지만 이렇게 계산하면 ~30일 때 10원, 31~60일 때 20원 이런 방식으로 요금이 부과되므로, 나눠 떨어지는 경우에는 따로 계산하였다.
#1267
import math
n = int(input())
time = list(map(int, input().split()))
ys = 0
ms = 0
for i in range(n):
if time[i]%30 == 0:
y = time[i]/30 + 1
else:
y = math.ceil(time[i]/30)
ys += (y*10)
if time[i]%60 == 0:
m = time[i]/60 + 1
else:
m = math.ceil(time[i]/60)
ms += (m*15)
if ys < ms:
print("Y %d" %ys)
elif ys > ms:
print("M %d" %ms)
else:
print("Y M %d" %ms)
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 1453 피씨방 알바 (0) | 2023.02.14 |
---|---|
[python/파이썬] 백준 2083 럭비 클럽 (0) | 2023.02.13 |
[python/파이썬] 백준 1075 나누기 (0) | 2023.02.09 |
[python/파이썬] 백준 1059 좋은 구간 (0) | 2023.02.08 |
[python/파이썬] 백준 1356 유진수 (0) | 2023.02.07 |