๊ธฐ๋ก๋ฐฉ

BOJ_2217 : ๋กœํ”„ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_2217 : ๋กœํ”„

Soom_1n 2022. 10. 11. 10:44

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

2217๋ฒˆ: ๋กœํ”„

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

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ์ž…๋ ฅ๋ฐ›์€ ๋กœํ”„๋กœ ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ค‘๋Ÿ‰์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • ์ตœ๋Œ€ ์ค‘๋Ÿ‰์€ ๊ฐ€์žฅ ์•ฝํ•œ ๋กœํ”„ * ๋กœํ”„์˜ ๊ฐœ์ˆ˜ ์ด๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int arr[] = new int[n];
        for (int i = 0; i < n; i++){
            arr[i] = Integer.parseInt(br.readLine());
        }
        Arrays.sort(arr);
        int answer = 0;
        for (int i = n-1; i >= 0; i--){
            int temp = arr[i] * (n-i);
            if (temp > answer) answer = temp;
        }
        System.out.println(answer);
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • n์ด ์ตœ๋Œ€ 100,000์ด๊ณ  ๊ฐ ๋กœํ”„์˜ ์ค‘๋Ÿ‰์€ ์ตœ๋Œ€ 10,000 ์ด๋ฏ€๋กœ, ์ตœ๋Œ€ ์ค‘๋Ÿ‰์˜ ์ตœ๋Œ€๊ฐ’์€ 100,000 * 10,000 = 1,000,000,000 (10์–ต)์ด๋‹ค. ๋”ฐ๋ผ์„œ int(์ตœ๋Œ€ 20์–ต)๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.
  • ๋ฌธ์ œ์˜ ์ œํ•œ์‹œ๊ฐ„์€ 2์ดˆ์ด๊ณ , ์ตœ์†Œ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • ๋งค๋ฒˆ ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•ด์ค˜์•ผ ํ•˜๋ฉด, O(n^2) == 10,000,000,000์œผ๋กœ 100์–ตํšŒ ๊ณ„์‚ฐ์œผ๋กœ ์•ฝ 100์ดˆ๊ฐ€ ์†Œ์š”๋œ๋‹ค.
    • ๋”ฐ๋ผ์„œ ์ตœ์†Œ๊ฐ’์„ ๋”ฐ๋กœ ๊ตฌํ•ด์ค„ ํ•„์š”๊ฐ€ ์—†๋„๋ก ์ •๋ ฌํ›„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ๋’ค์ชฝ์œผ๋กœ ์ˆœํšŒํ•œ๋‹ค.
    • ์ •๋ ฌํ–ˆ์œผ๋ฏ€๋กœ ์ธ๋ฑ์Šค i๋กœ ๋‚˜์˜ค๋Š” ๊ฐ’์€ ํ•ญ์ƒ ์ตœ์†Œ๊ฐ’์ด๋‹ค.
    • (์ตœ์†Œ๊ฐ’ * ๋กœํ”„์˜ ๊ฐœ์ˆ˜)์˜ ์ตœ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๋ฌธ์ œ๋ฅผ ์ž˜๋ชป ํŒŒ์•…ํ•˜๊ณ  DFS๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋‚˜ ํ•œ์ฐธ ๊ณ ๋ฏผํ–ˆ๋‹ค.
  • ๋ฌธ์ œ ํƒœ๊ทธ๊ฐ€ ์ •๋ ฌ, ๊ทธ๋ฆฌ๋””์ธ๊ฑธ ๋ณด๊ณ ์„œ์•ผ ํ’€์ด๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
    • answer์˜ ์ž๋ฃŒํ˜•์„ ์ผ๋‹จ long์œผ๋กœ ๋‘๊ณ  ๋งž์•˜๋Š”๋ฐ, ๊ณ„์‚ฐํ•ด๋ณด๋‹ˆ int๋กœ๋„ ๊ฐ€๋Šฅํ•ด์„œ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋‹ค.
    • ์ •๋ ฌํ–ˆ์œผ๋ฏ€๋กœ (์ตœ์†Œ๊ฐ’ * ๋กœํ”„์˜ ๊ฐœ์ˆ˜)๊ฐ€ ํ•œ ๋ฒˆ์ด๋ผ๋„ answer๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋’ค๋Š” ๊ฒ€์‚ฌํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ์ค„ ์•Œ์•˜๋‹ค.
      • (์ตœ์†Œ๊ฐ’)์ด ๋„ˆ๋ฌด ์ž‘์•„์„œ ์ผ์‹œ์ ์œผ๋กœ ๋” ์ž‘๊ฒŒ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ, (๋กœํ”„์˜ ๊ฐœ์ˆ˜)๊ฐ€ ์ปค์ง€๋ฉฐ ๋‹ค์‹œ ์ตœ๋Œ€๊ฐ’์ด ๊ฐฑ์‹  ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ „๋ถ€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.
  • ํ˜น์‹œ ํ’€์ด ์ดˆ์ ์ด ํ‹€๋ ธ์„๊นŒ ํ•ด์„œ ๋‹ค๋ฅธ ํ’€์ด๋“ค์„ ํ™•์ธํ•ด๋ดค์—ˆ์ง€๋งŒ, ์œ„์˜ ์ด์œ ๋•Œ๋ฌธ์— ํ‹€๋ฆฐ๊ฑฐ์˜€๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_17093 : Total Circle  (0) 2022.10.19
BOJ_25205 : ๊ฒฝ๋กœ๋‹นํŽ‘ํฌ 2077  (0) 2022.10.19
BOJ_2714 : ๋ฌธ์ž๋ฅผ ๋ฐ›์€ ์Šนํ™˜์ด  (0) 2022.10.10
BOJ_1065 : ํ•œ์ˆ˜  (0) 2022.10.10
BOJ_2635 : ์ˆ˜ ์ด์–ด๊ฐ€๊ธฐ  (0) 2022.10.08