티스토리 뷰

📚 문제

입력

출력

예제 입력 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();
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함