์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/๋ฐ”ํ‚น๋…

[JAVA] ๋ฐฑ์ค€ 1715๋ฒˆ ใ€G4.์นด๋“œ ์ •๋ ฌํ•˜๊ธฐใ€‘

2023. 9. 5. 16:00

๋ฌธ์ œ

 

1715๋ฒˆ: ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ

์ •๋ ฌ๋œ ๋‘ ๋ฌถ์Œ์˜ ์ˆซ์ž ์นด๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๊ฐ ๋ฌถ์Œ์˜ ์นด๋“œ์˜ ์ˆ˜๋ฅผ A, B๋ผ ํ•˜๋ฉด ๋ณดํ†ต ๋‘ ๋ฌถ์Œ์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜๋กœ ๋งŒ๋“œ๋Š” ๋ฐ์—๋Š” A+B ๋ฒˆ์˜ ๋น„๊ต๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผํ…Œ๋ฉด, 20์žฅ์˜ ์ˆซ์ž ์นด๋“œ ๋ฌถ์Œ๊ณผ 30์žฅ

www.acmicpc.net

 

ํ’€์ด

1๏ธโƒฃ PriorityQueue ๋ฅผ ํ™œ์šฉํ•œ ํ’€์ด

๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea

์•ฝ๊ฐ„, ๊ทธ๋ฆฌ๋”” ์ฒ˜๋Ÿผ ์ƒ๊ฐ์„ ํ•ด๋ณด์•˜๋‹ค.

๋ˆ„์ ์œผ๋กœ ๋ฌถ์Œ์˜ ์ˆ˜๋งŒํผ ํ•ฉ์ณ์ง€๋ฏ€๋กœ, ๊ฐ€์žฅ ์ž‘์€ ๋ฌถ์Œ์˜ ์ˆ˜๋งŒ ์ค‘๋ณต์œผ๋กœ ๊ฐ’์— ๋”ํ•ด์ ธ์•ผํ•œ๋‹ค.

๊ฒฐ๋ก ์€, ์นด๋“œ ๋ฌถ์Œ์„ ํ•ฉ์น˜๋Š”๋ฐ ๋‚จ์€ ์นด๋“œ ๋ฌถ์Œ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๋‘ ๋ฌถ์Œ์„ ๊ณจ๋ผ์„œ ํ•ฉ์ณ์•ผ ํ•œ๋‹ค.

์นด๋“œ ๋ฌถ์Œ์„ ํ•ฉ์น˜๊ฒŒ ๋˜๋ฉด, ๋‹ค๋ฅธ ํ›„๋ณด ๋ฌถ์Œ๋“ค ๋ณด๋‹ค ์ปค์ง€๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ๊ณ  ์—ฌ์ „ํžˆ ์ž‘์„ ์ˆ˜๋„ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ, ์ผ๋‹จ์€ ์ด ์นด๋“œ ๋ฌถ์Œ์„ ๋‹ค์‹œ ํ›„๋ณด๋กœ ์˜ฌ๋ ค๋‘๊ณ , ๋‚จ์€ ํ›„๋ณด๋“ค ์ค‘ ๋‹ค์‹œ ๊ฐ€์žฅ ์ž‘์€ ์นด๋“œ ๋ฌถ์Œ 2๊ฐœ๋ฅผ ์„ ํƒํ•ด์„œ ํ•ฉ์ณ์•ผํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ํ›„๋ณด๋กœ ๋‚จ์•„์žˆ๋Š” ์นด๋“œ ๋ฌถ์Œ์ด 1๊ฐœ๊ฐ€ ๋ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์•ผํ•œ๋‹ค.

๊ณ„์†ํ•ด์„œ ์ž‘์€ ์นด๋“œ ๋ฌถ์Œ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„ ์ˆœ์œ„ํ๋ฅผ ํ™œ์šฉํ•˜๋ฉด O(logN)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ๊ฐ’๋“ค์„ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

import java.io.*;
import java.util.*;

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());
        PriorityQueue<Integer> pq = new PriorityQueue<>();

        while (N-- > 0) {
            pq.add(Integer.parseInt(br.readLine()));
        }

        int result = 0;

        while (true) {
            if (pq.size() <= 1) {
                break;
            }
            int A = pq.poll();
            int B = pq.poll();
            int sum = A + B;
            result += sum;
            pq.add(sum);
        }
        
        System.out.println(result);
    }
}

 

๐Ÿ“– ํšŒ๊ณ 

์šฐ์„  ์ˆœ์œ„ ํ์˜ ์›๋ฆฌ๋ฅผ ์ž˜ ํŒŒ์•…ํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค.

 

๋ฌธ์ œ๊ฐ€ ์กฐ๊ธˆ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ์“ฐ์—ฌ์žˆ์–ด์„œ, ๋‹จ์ˆœํ•˜๊ฒŒ ๊ณ„์† ์ž‘์€ ์นด๋“œ ๋ฌถ์Œ 2๊ฐœ๋ฅผ ๊ณจ๋ผ์„œ ํ•ฉ์นœ๋‹ค ๋ผ๊ณ  ๋‹จ์ˆœํ™”ํ–ˆ๋”๋‹ˆ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

๋ฌธ์ œ์˜ ํ•ต์‹ฌ์„ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/๋ฐ”ํ‚น๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JAVA] ๋ฐฑ์ค€ 1781๋ฒˆ ใ€G2.์ปต๋ผ๋ฉดใ€‘
    • [JAVA] ๋ฐฑ์ค€ 1655๋ฒˆ ใ€G2.๊ฐ€์šด๋ฐ๋ฅผ ๋งํ•ด์š”ใ€‘
    • [JAVA] ๋ฐฑ์ค€ 23326๋ฒˆ ใ€G3.ํ™์ต ํˆฌ์–ด๋ฆฌ์ŠคํŠธใ€‘
    • [JAVA] ๋ฐฑ์ค€ 22939๋ฒˆ ใ€G4.๋ฌธ์ œ ์ถ”์ฒœ ์‹œ์Šคํ…œ Version 1ใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”