간단한 그리디 알고리즘
서르명이 필요없다 ~
#include <iostream> #include <algorithm> #include <vector> #include <string.h> #include <math.h> #include <queue> #include <set> #include <utility> #include <functional> #define MAX 40005 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n,mx=0; vector<int> v; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { int tmp; scanf("%d", &tmp); v.push_back(tmp); } sort(v.begin(), v.end()); // 입력값을 무게 순으로 정렬한다. for (int i = 0; i < n; i++) { if (mx < v[i] * (n - i)) mx = v[i] * (n - i); } // 작은 무게의 루프부터 차례대로 최대 들 수 있는 무게를 찾는다. // 작은 무게부터 하는이유는 작은무게의 루프가 통과된다면 // 그 루프보 큰 무게는 무조건 들 수 있기 때문이다. printf("%d", mx); return 0; }
'IT > BOJ' 카테고리의 다른 글
백준(BOJ) 7453 합이 0인 네 정수 * (0) | 2018.06.01 |
---|---|
백준(BOJ) 1931 회의실배정 ** (0) | 2018.06.01 |
백준(BOJ) 1946 신입사원 * (0) | 2018.06.01 |
백준(BOJ) 2629 부등호 * (0) | 2018.06.01 |
백준(BOJ) 1759 암호만들기 * (0) | 2018.06.01 |