문제
https://www.acmicpc.net/problem/1267
1267번: 핸드폰 요금
동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
문제 설명
동호가 저번 달에 통화한 내용을 입력받고
통신사의 두 가지 요금제 중 더 적게 나오는 요금제를 계산하여 출력하는 문제이다.
코드
input = __import__('sys').stdin.readline
def fee_30(num):
return (num // 30 + 1) * 10
def fee_60(num):
return (num // 60 + 1) * 15
def main():
N = int(input())
arr = list(map(int, input().split()))
res_30 = sum(map(fee_30, arr))
res_60 = sum(map(fee_60, arr))
if res_30 == res_60:
print('Y M', end = ' ')
print(res_30)
elif res_30 < res_60:
print('Y', end = ' ')
print(res_30)
elif res_30 > res_60:
print('M', end = ' ')
print(res_60)
if __name__ == "__main__":
main()
코드 설명
1. fee_30, fee_60 함수들은 통화시간 num을 인자로 받아 요금을 계산하고 반환하는 함수이다.
2. 메인 함수에서는 위에서 정의한 함수들을 통해 각 요소들의 요금제를 계산하고 합을 구한다.
3. 합을 비교하여 더 적은 요금제를 사용한 요금을 출력한다.
저번 달의 요금을 계산할 때에는 통화시간을 모두 더한 후 요금제를 계산하는 것이 아니라, 각 통화시간의 요금제를 따로 구하고 더해야 한다.
'Koala - 11기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 1551번: 수열의 변화 (0) | 2023.07.15 |
---|---|
[백준/Python3] 2839번: 설탕 배달 (0) | 2023.07.15 |
[백준/Python] 4458번: 첫 글자를 대문자로 (0) | 2023.07.15 |
[백준/python] 9012번: 괄호 (0) | 2023.07.14 |
[백준/C++] 2839번: 설탕 배달 (0) | 2023.07.14 |