๐Ÿ’  BOJ

[BOJ][C++] ๋ฐฑ์ค€ 2217๋ฒˆ: ๋กœํ”„

์„ ๋‹ฌ 2024. 3. 15. 17:31
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

N(1 ≤ N ≤ 100,000)๊ฐœ์˜ ๋กœํ”„๊ฐ€ ์žˆ๋‹ค. ์ด ๋กœํ”„๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด๋Ÿฐ ์ €๋Ÿฐ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋กœํ”„๋Š” ๊ทธ ๊ตต๊ธฐ๋‚˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ค‘๋Ÿ‰์ด ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋กœํ”„๋ฅผ ๋ณ‘๋ ฌ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฐ๊ฐ์˜ ๋กœํ”„์— ๊ฑธ๋ฆฌ๋Š” ์ค‘๋Ÿ‰์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. k๊ฐœ์˜ ๋กœํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋Ÿ‰์ด w์ธ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ๋•Œ, ๊ฐ๊ฐ์˜ ๋กœํ”„์—๋Š” ๋ชจ๋‘ ๊ณ ๋ฅด๊ฒŒ w/k ๋งŒํผ์˜ ์ค‘๋Ÿ‰์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค.

๊ฐ ๋กœํ”„๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ๋กœํ”„๋“ค์„ ์ด์šฉํ•˜์—ฌ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์„ ๊ตฌํ•ด๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋ชจ๋“  ๋กœํ”„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ํ•„์š”๋Š” ์—†์œผ๋ฉฐ, ์ž„์˜๋กœ ๋ช‡ ๊ฐœ์˜ ๋กœํ”„๋ฅผ ๊ณจ๋ผ์„œ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ๋กœํ”„๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 10,000์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

๋กœํ”„๋ฅผ n๊ฐœ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๊ฐ€์žฅ ํ•˜์ค‘์ด ์ ์€ ๋กœํ”„์˜ ํ•˜์ค‘ a*n์˜ ๋ฌด๊ฒŒ๋ฅผ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋‹ค

 

์˜ˆ๋ฅผ ๋“ค์–ด 10, 20, 30, 40์˜ ๋กœํ”„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด

1๊ฐœ๋งŒ ์‚ฌ์šฉ -> 40 ํ•œ๊ฐœ -> 40 * 1 = 40

2๊ฐœ๋งŒ ์‚ฌ์šฉ -> 40๊ณผ 30 -> 30*2 = 60

3๊ฐœ๋งŒ ์‚ฌ์šฉ -> 40๊ณผ 30๊ณผ 20 -> 20*3 = 60

4๊ฐœ ๋‹ค ์‚ฌ์šฉ -> 40๊ณผ 30๊ณผ 20๊ณผ 10 -> 10*4 = 40

์ด๋ฏ€๋กœ 2๊ฐœ๋‚˜ 3๊ฐœ๋งŒ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ด๋‹ค

 

๋”ฐ๋ผ์„œ ์ฃผ์–ด์ง„ ๋กœํ”„ ์ค‘ n๊ฐœ ์‚ฌ์šฉ, n-1๊ฐœ ์‚ฌ์šฉ, n-2๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ๋ฅผ ๊ตฌํ•ด์„œ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค

๋กœํ”„๋ฅผ ํ•˜์ค‘ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ ๋’ค ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€์–ด๋‚ด์ž

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> v(n);
    for(int i=0; i<n; i++) {
        cin >> v[i];
    }
    
    int ans = 0;
    sort(v.begin(), v.end());
    for(int i=0; i<n; i++) {
        ans = max(ans, v[i]*(n-i));
    }
    
    
    cout << ans;
}
๋ฐ˜์‘ํ˜•