[백준/BOJ] 백준 1267번 : 핸드폰 요금

2020. 8. 2. 15:44알고리즘 문제풀이

https://www.acmicpc.net/problem/1267

 

1267번: 핸드폰 요금

동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

입력된 통화시간을 하나씩 확인하면서 영식 요금제와 민식 요금제의 가격을 추가해나간다. 입력된 통화시간 중 하나를 t_time[i]라고 할 때 이 통화시간을 영식 요금제로 계산하면 (t_time[i] / 30 + 1) * 10이고 민식 요금제로 계산하면 (t_time[i] / 60 + 1) * 15이다. 이렇게 통화시간을 모두 다 확인하여 영식 요금제의 합계와 민식 요금제의 합계를 계산하는 것이다.

 

코드

#include <iostream>
#include <vector>
using namespace std;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	int y_money = 0;
	int m_money = 0;
	int n;
	int temp;
	vector<int> t_time;

	cin >> n;

	//통화시간을 입력받는다
	for (int i = 0; i < n; i++)
	{
		cin >> temp;
		t_time.push_back(temp);
	}

	for (int i = 0; i < n; i++)
	{
		//영식 요금제 계산
		y_money += (t_time[i] / 30 + 1) * 10;

		//민식 요금제 계산
		m_money += (t_time[i] / 60 + 1) * 15;
	}

	//더 저렴한 요금제와 가격을 출력한다
	//만약 두 요금제의 가격이 같다면 Y M 가격을 출력한다
	if (y_money == m_money)
		cout << "Y M " << y_money;
	else if (y_money < m_money)
		cout << "Y " << y_money;
	else if (y_money > m_money)
		cout << "M " << m_money;

	return 0;
}