*출처
https://www.acmicpc.net/problem/1267
1267번: 핸드폰 요금
동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
[문제]
동호는 새악대로 T 통신사의 새 핸드폰 옴머나를 샀다. 새악대로 T 통신사는 동호에게 다음 두 가지 요금제 중 하나를 선택하라고 했다.
- 영식 요금제
- 민식 요금제
영식 요금제는 30초마다 10원씩 청구된다. 이 말은 만약 29초 또는 그 보다 적은 시간 통화를 했으면 10원이 청구된다. 만약 30초부터 59초 사이로 통화를 했으면 20원이 청구된다.
민식 요금제는 60초마다 15원씩 청구된다. 이 말은 만약 59초 또는 그 보다 적은 시간 통화를 했으면 15원이 청구된다. 만약 60초부터 119초 사이로 통화를 했으면 30원이 청구된다.
동호가 저번 달에 새악대로 T 통신사를 이용할 때 통화 시간 목록이 주어지면 어느 요금제를 사용 하는 것이 저렴한지 출력하는 프로그램을 작성하시오.
[입력]
동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.
[출력]
첫째 줄에 싼 요금제의 이름을 출력한다. 그 후에 공백을 사이에 두고 요금이 몇 원 나오는지 출력한다. 만약 두 요금제의 요금이 모두 같으면 영식을 먼저 쓰고 민식을 그 다음에 쓴다.
영식은 Y로, 민식은 M으로 출력한다.
[예제 입력]
# 1
3
40 40 40
# 2
3
61 61 61
[예제 출력]
# 1
M 45
- 영식: 20 + 20 + 20 = 60
- 민식: 15 + 15+ 15 = 45
# 2
Y M 90
[생각]
- N 번 동안 for문을 통해 반복하도록 한다.
- 코드를 돌리며 영민, 민식의 값을 각각 나타내고,
- 이 둘을 비교해서 값을 내 놓도록 해야한다.
[코드]

[공부한 점]
- input()은 값을 'str'로 반환한다.
- input().split(***)은 들어오는 입력값을 ***에 따라서 자르고 리스트로 반환한다.
- 이 때, 리스트 안의 값은 문자열 데이터로 유지되므로, 다루기 쉽게 int로 바꾼다.
- f' string 을 통해서 문자열 내에 변수 값을 넣을 수 있다.
'Algorithm' 카테고리의 다른 글
[BAEKJOON_1550] 16진수(Python) (0) | 2022.08.02 |
---|---|
[BAEKJOON_2061] 좋은 암호 (0) | 2022.08.01 |
[BAEKJOON_1076] 저항(Python) (0) | 2022.07.31 |
[BAEKJOON_1009] 분산 처리(Python) (0) | 2022.07.30 |
[BAEKJOON_1085] 직사각형에서 탈출(Python) (0) | 2022.07.21 |