알고리즘
[algorithm] 백준 15903 - 카드 합체 놀이 (c++)
hyuuny
2022. 7. 28. 15:01
📚 문제
입력
출력
예제 입력 1
3 1
3 2 6
예제 출력 1
16
예제 입력 2
4 2
4 2 3 1
예제 출력 2
19
🧑🏻💻 풀이 과정
- 입력받은 카드를
y
만큼 반복하며, 시작마다sort
로 오름차순 정렬하자. - 카드의 0번째와 1번째를 더한 뒤(오름차순 정렬했으니, 가장 작은 값임), 0번째와 1번째에 각각 대입해주자.
- 반복이 끝나면, 카드의 값을 모두 더하고 출력하자.
#include "iostream"
#include "vector"
#include "algorithm"
using namespace std;
int x, y;
vector<long long> v;
void inputCards() {
for (int i = 0; i < x; ++i) {
int num;
cin >> num;
v.push_back(num);
}
}
void unionCards() {
while (y > 0) {
sort(v.begin(), v.end());
long long sumVal = v[0] + v[1];
v[0] = sumVal, v[1] = sumVal;
y--;
}
}
void printSum() {
long long sum = 0;
for (int i = 0; i < v.size(); ++i) sum += v[i];
cout << sum << endl;
}
int main() {
cin >> x >> y;
inputCards();
unionCards();
printSum();
}