문제
https://www.acmicpc.net/problem/1267
문제 설명
동호가 저번 달에 통화한 내용을 입력받고
통신사의 두 가지 요금제 중 더 적게 나오는 요금제를 계산하여 출력하는 문제이다.
코드
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 |