https://www.acmicpc.net/problem/2217
์ฝ๋
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) throws IOException {
//Scanner scan = new Scanner(System.in);
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(bf.readLine());
Integer[] lope = new Integer[N]; // ๊ฐ ๋กํ ์ค๋
int maxWeight = 0; // ์ต๋ ์ค๋
int num = 1; // ๋กํ ๊ฐฏ์
for(int i=0; i<lope.length; i++)
//lope[i] = scan.nextInt();
lope[i] = Integer.parseInt(bf.readLine());
// ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
Arrays.sort(lope, Collections.reverseOrder());
// 15*1 , 10*2, ... ๋น๊ต
for(int i=0; i<lope.length; i++) {
maxWeight = Math.max(lope[i] * num, maxWeight);
num ++;
}
bw.write(maxWeight + "\n");
bw.flush();
//System.out.println(maxWeight);
//scan.close();
bf.close();
}
}
๋ฌธ์ ์ดํด
๋ฌธ์ ์ดํด๊ฐ ์๋์ ๊ณ์๋ณด๊ณ , ๋ธ๋ก๊ทธ๋ ์ฐพ์๋ดค๋ค.
๋ฌธ์ ์์ k๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋์ด w์ธ ๋ฌผ์ฒด๋ฅผ ๋ค์ด์ฌ๋ฆด ๋, ๊ฐ๊ฐ์ ๋กํ์๋ ๋ชจ๋ ๊ณ ๋ฅด๊ฒ w/k๋งํผ ์ค๋์ด ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ๊ณ ํ๋ค.
์์ ์ ๋ ฅ1์ ๊ฒฝ์ฐ, ์ต๋ ์ค๋์ ๋ณด๋ฉด
1๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ ๋ -> ์ต๋ ์ค๋์ด ๋๋ ค๋ฉด ๋ฌด๊ฒ๊ฐ 15์ธ ๋กํ ํ๊ฐ๋ง ๋ค์ด์ฌ๋ฆด๋, ์ต๋ ์ค๋์ 15๊ฐ ๋๋ค.
2๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ ๋ -> ์ต๋ ์ค๋์ด ๋๋ ค๋ฉด ๋ฌด๊ฒ๊ฐ ์์ 10 * 2๊ฐ ๋๊ฐ ๋ค์ด์ฌ๋ฆด๋, ์ต๋ ์ค๋์ 20์ด ๋๋ค.
๋ง์ฝ ์ ๋ ฅ์ด ์๋์ ๊ฐ๋ค๋ฉด,
4
35 10 20 30
์ ์ค๋์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
35 30 20 10
1๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ ๋ -> ์ต๋์ค๋์ 35
2๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ ๋ -> ์ 35๋กํ๋ ์ค๋ 30 ๋กํ๋ ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐํด์ ์ต๋์ค๋์ 30 * 2 = 60์ด ๋๋ค.
3๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ ๋ -> ์ 35, 30 ๋กํ๋ 20๋กํ๋ฅผ ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐํด์ 20 * 3 = 60์ด ๋๋ค.
4๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ ๋ -> ์ 35, 30, 20 ๋กํ๋ 10๋กํ๋ฅผ ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐํด์ 10 * 4 = 40์ด ๋๋ค.
๋ฐ๋ผ์ ์ต๋์ค๋์ 60์ด ๋๋ค.
ํ์ด
์ ์ดํดํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก, ๋กํ๋ฅผ ๊บผ๋ด๋ฉด์ ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐํด์ ์ต๋ ์ค๋์ ์ฐพ์ผ๋ฉด ๋๋ค.
โป ํ์์ Scanner ํด๋์ค๋ฅผ ์ด์ฉํด์ ์ ๋ ฅ์ ๋ฐ์๋๋ฐ, BufferedReader ํด๋์ค๋ฅผ ์ฌ์ฉํด์ ์ ๋ ฅ๋ฐ์ผ๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋๋ฉด์์ ์์ฒญ ๊ฐ์๊ฐ ๋์๋ค.
๊ฐ์ฅ ์๋ - Scanner๋ก ์ ๋ ฅ๋ฐ๊ธฐ.
์ค๊ฐ - BufferedReader๋ก ์ ๋ ฅ๋ฐ๊ธฐ.
๊ฐ์ฅ ์ - BufferedReader๋ก ์ ๋ ฅ + BufferedWriter๋ก ์ถ๋ ฅํ๊ธฐ.
Scanner์ BufferedReader์ ๋ฉ๋ชจ๋ฆฌ & ์๊ฐ์ ์์ด์ ์๋นํ ์ฐจ์ด๊ฐ ์์๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Codeforces] 996A - Hit the Lottery (0) | 2020.02.20 |
---|---|
[๋ฐฑ์ค] 15651๋ฒ: N๊ณผ M (3) (dfs, ์ค๋ณตํฌํจ) (0) | 2020.02.19 |
[Codeforces] 1154A - Restoring Three Numbers (0) | 2020.02.19 |
[๋ฐฑ์ค] 15650๋ฒ: N๊ณผ M (2) (dfs, ๋ฐฑํธ๋ํน) (0) | 2020.02.18 |
[๋ฐฑ์ค] 15649๋ฒ: N๊ณผ M (1) (dfs, ๋ฐฑํธ๋ํน) (0) | 2020.02.18 |
๋๊ธ