반응형
#문제정보
출처 : www.acmicpc.net/problem/15903
#문제분석
알고리즘 분류 : 그리디(GREEDY)
그냥 충실히 더해주기만 하면 되는 간단한 그리디 문제이다.
while (m--)
{
sort(card.begin(), card.end());
temp = card[0] + card[1];
card[0] = card[1] = temp;
}
입력받은 m(합체 횟수) 만큼 반복을 돌려서 , sort로 오름차 정렬을 해준 뒤 문제에서 제시한 조건에 맞게 더한다.
자료형만 조심하면 딱히 어려운 부분은 없는 문제였다.
#소스코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
ll result;
int main()
{
int n, m;
cin >> n >> m;
vector<ll> card;
ll temp;
while (n--)
{
cin >> temp;
card.push_back(temp);
}
while (m--)
{
sort(card.begin(), card.end());
temp = card[0] + card[1];
card[0] = card[1] = temp;
}
for (int i = 0 ; i < card.size() ; ++i)
{
result += card[i];
}
cout << result;
return 0;
}
반응형
'Archive2 > ProblemSolving' 카테고리의 다른 글
[C/C++] BOJ(백준) 2847 "게임을 만든 동준이" 문제 풀이 & 소스 코드 (0) | 2021.05.10 |
---|---|
[C/C++] BOJ(백준) 1744 "수 묶기" 문제 풀이 & 소스 코드 (0) | 2021.05.09 |
[C/C++] BOJ(백준) 1783 "병든 나이트" 문제 풀이 & 소스 코드 (0) | 2021.05.05 |
[C/C++] BOJ(백준) 11501 "주식" 문제 풀이 & 소스 코드 (0) | 2021.05.04 |
[C/C++] BOJ(백준) 1439 "뒤집기" 문제 풀이 & 소스 코드 (0) | 2021.05.02 |