#include <string> #include <vector> #include <iostream> #include <cmath> #include <map> #include <algorithm> using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); int N; cin >> N; vector<int> v(N); for(int i=0;i<N;i++) cin >> v[i]; sort(v.begin(), v.end()); int MAX = v[0]; for(int i=0;i<N;i++) { int t = (v.size() - i)*v[i]; MAX = max(MAX, t); } cout << MAX; return 0; }
- 로직
1) 로프의 길이를 오름차순 정렬
2) for문을 순회하며v[i]*뒤에남은 개수
의 최대값을 구하며 MAX갱신
(적어도 내 값으로 내 뒤에 남은 개수만큼은 들 수 있기 때문)