반응형
https://www.acmicpc.net/problem/15903
풀이
- 첫 번째 줄에 카드의 수, 합체의 수를 입력받는다
- 두 번째 줄에 카드의 값을 나타내는 값들을 입력받는다.
- 값들을 vector에 넣는다.
- 최솟값을 구해야하기 때문에 가장 작은 것 두개를 더하면 된다.
- sort함수를 통해 정렬을 하면 배열의 0번과 1번에 가장 작은 두 값이 오게 된다.
- 두 값을 더한뒤 0번 배열과 1번 배열에 더한값을 덮어 씌운다.
- 배열의 값들을 모두 더한 뒤 출력한다
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int n, m;
long long sum = 0;
cin >> n >> m;
vector<long long> card;
long long number;
for (int i = 0; i < n; i++) {
cin >> number;
card.push_back(number);
}
for (int i = 0; i < m; i++) {
long long temp;
sort(card.begin(), card.end());
temp = card[0] + card[1];
card[0] = card[1] = temp;
}
for (int i = 0; i < card.size(); i++)
sum += card[i];
cout << sum;
return 0;
}
반응형
'백준' 카테고리의 다른 글
백준 1850번[c/c++] : 최대공약수 (0) | 2022.04.30 |
---|---|
백준 2872번[c/c++] : 우리집엔 도서관이 있어 (0) | 2022.04.29 |
백준 11399번[c언어] : ATM (0) | 2022.04.27 |
백준 11047번[c언어] : 동전 0 (0) | 2022.04.27 |
백준 3053번[c언어] : 택시 기하학 (0) | 2022.03.22 |
댓글