백준 문제풀이/브론즈3
백준 1267번 - 핸드폰 요금
void_melody
2021. 10. 18. 02:31
https://www.acmicpc.net/problem/1267
1267번: 핸드폰 요금
동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
처음 방식은 벡터를 활용해서 접근해봤다. 물론 배열로 해도 되는데, 벡터 쓰고 싶어서 써봤다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
cin >> n;
int Y = 0, M = 0;
vector<int> v;
v.resize(n);
for (int i = 0; i < n; i++)
{
cin >> v[i];
Y += (v[i] / 30 + 1) * 10;
M += (v[i] / 60 + 1) * 15;
}
if (Y < M)
cout << 'Y' << " " << Y;
else if (Y > M)
cout << 'M' << " " << M;
else // Y == M
cout << 'Y' << " " << 'M' << " " << Y;
return 0;
}
아니면 벡터 말고 그냥 일반 변수로도 해볼 수 있다.
메모리 차이는 없다.
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int Y = 0, M = 0;
int temp;
for (int i = 0; i < n; i++)
{
cin >> temp;
Y += (temp / 30 + 1) * 10;
M += (temp / 60 + 1) * 15;
}
if (Y < M)
cout << 'Y' << " " << Y;
else if (Y > M)
cout << 'M' << " " << M;
else // Y == M
cout << 'Y' << " " << 'M' << " " << Y;
return 0;
}