반응형
https://www.acmicpc.net/problem/11908
greedy문제였습니다.
📕 풀이방법
📔 입력 및 초기화
수의 개수 n, 정답을 출력할 sum, 수의 정보를 입력받을 vector v를 선언한 후 적절히 입력받습니다.
📔 풀이과정
두 수를 비교해 작은 수는 주머니로 이동합니다. 이 규칙에 의해 가장 큰 수는 어떻게 해도 주머니로 이동할 수 없습니다. 따라서 주머니에 들어 있는 수들의 최대합은 가장 큰 수를 제외한 나머지 수들이 됩니다.
1. v를 오름차순으로 정렬합니다.
2. 마지막 원소는 가장 큰 수가 되므로 이 수를 제외한 나머지들은 sum에 더해줍니다.
📔 정답출력
sum을 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int n, sum;
vector <int> v;
int main(){
cin >> n;
v.resize(n);
for(int i = 0; i < n; i++) cin >> v[i];
sort(v.begin(), v.end());
for(int i = 0; i < v.size() - 1; i++) sum += v[i];
cout << sum;
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Greedy' 카테고리의 다른 글
(C++) - LeetCode (easy) 717. 1-bit and 2-bit Characters (0) | 2023.06.22 |
---|---|
(C++) - LeetCode (easy) 121. Best Time to Buy and Sell Stock (0) | 2022.11.29 |
(C++) - 백준(BOJ) 1817 : 짐 챙기는 숌 (0) | 2022.05.29 |
(C++) - 백준(BOJ) 2891 : 카약과 강풍 (0) | 2022.05.21 |
(C++) - 백준(BOJ) 17509 : And the Winner Is... Ourselves! (0) | 2022.05.17 |