[BOJ] 2217번 로프

문제 바로가기

접근

내림차순으로 정렬한 후 arr[i] * i (0 < i <= N)를 계산하여 큰 값을 찾는다.

#include <bits/stdc++.h>
using namespace std;

#define MAX 100000

int main() {
  std::ios::sync_with_stdio(false);
  int N;
  long long cur = 0;
  int arr[MAX];

  cin >> N;
  for(int i = 0; i < N; i++)
    cin >> arr[i];
  sort(arr, arr + N, greater<int>());

  for(int i = 0; i < N; i++) {
    if(cur < arr[i] * (i + 1))
      cur = arr[i] * (i + 1);
  }
  cout << cur;
}

좋은 웹페이지 즐겨찾기