https://www.acmicpc.net/problem/2217
아직 그리디라는 것이 와닿지는 않지만 문제를 풀어보는 중이다.
보자마자 음.. 최소값에 개수를 곱하면 가장크지 않을까? 라는 생각이 들었고, 그렇게 코딩해서 1틀림
그리고 생각해보니까 sort한 v[i]번째값에 n-i 개를 곱한 것도 비교해야 한다는 것을 알았다.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int n;
vector<int>v;
cin >> n;
for (int i = 0; i < n; i++)
{
int temp;
cin >> temp;
v.push_back(temp);
}
sort(v.begin(), v.end());
int ma=v[0]*n;
for (int i = 0; i < v.size(); i++) {
ma = max(ma, v[i]*(n-i));
}
cout <<ma << endl;
}
'코딩테스트_백준풀이' 카테고리의 다른 글
센서 #2212 c++ 풀이 (0) | 2023.11.24 |
---|---|
강의실 배정 #11000 (1) | 2023.11.23 |
행렬 #1080 c++ 풀이 (0) | 2023.11.22 |
신입사원 #1946 c++ 풀이 (2) | 2023.11.22 |
잃어버린 괄호 #1541 c++ 문제풀이 (0) | 2023.11.22 |