๋ฐฐ๋„ˆ ์ด๋ฏธ์ง€

๋ฐฑ์ค€ 2075: N๋ฒˆ์งธ ํฐ ์ˆ˜(JAVA)

2025. 5. 6. 22:27ยท์•Œ๊ณ ๋ฆฌ์ฆ˜

 

๐Ÿ’ก ๋ฌธ์ œ ์š”์•ฝ

  • N x N ํฌ๊ธฐ์˜ 2์ฐจ์› ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง„๋‹ค.
  • ์ด ๋ฐฐ์—ด์—์„œ N๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜๋ฅผ ์ฐพ์•„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ

๐Ÿ“… ์กฐ๊ฑด ์š”์•ฝ

  • ๋ฐฐ์—ด์€ ์ด N๊ฐœ์˜ ์ค„, ๊ฐ ์ค„๋งˆ๋‹ค N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
  • ๋ชจ๋“  ์ˆ˜๋Š” ์ •์ˆ˜์ด๋ฉฐ, ์ค‘๋ณต ๊ฐ€๋Šฅ
  • ์‹œ๊ฐ„ ์ œํ•œ: 1์ดˆ / ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ: 12MB

๐Ÿ” ์ž…๋ ฅ ํ˜•์‹

N
A[1][1] A[1][2] ... A[1][N]
A[2][1] A[2][2] ... A[2][N]
...
A[N][1] A[N][2] ... A[N][N]
  • 1 <= N <= 1500

โœ… ์ถœ๋ ฅ ํ˜•์‹

  • N๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜ ์ถœ๋ ฅ

๐Ÿง  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

  1. PriorityQueue (์ตœ์†Œ ํž™) ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๋Œ€ N๊ฐœ์˜ ์›์†Œ๋ฅผ ์œ ์ง€
  2. ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆ˜๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ
    • ํž™์— ์ถ”๊ฐ€
    • ํฌ๊ธฐ๊ฐ€ N์„ ์ดˆ๊ณผํ•˜๋ฉด ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐ (poll())
  3. ๋งˆ์ง€๋ง‰์— peek()ํ•˜๋ฉด N๋ฒˆ์งธ ํฐ ์ˆ˜๊ฐ€ ๋‚จ๊ฒŒ ๋จ

๐Ÿ—‚ ์ „์ฒด ์ฝ”๋“œ

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

public class N๋ฒˆ์งธํฐ์ˆ˜ {
    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<>();

        for (int i = 0; i < N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int j = 0; j < N; j++) {
                int num = Integer.parseInt(st.nextToken());
                pq.offer(num);
                if (pq.size() > N) {
                    pq.poll();
                }
            }
        }

        System.out.println(pq.peek());
    }
}

โฑ๏ธ ์‹œ๊ฐ„ ๋ณต์žก๋„

๋‹จ๊ณ„ ์‹œ๊ฐ„
์ „์ฒด ํƒ์ƒ‰ O(N^2)
ํž™ ์‚ฝ์ž…/์‚ญ์ œ O(log N)
์ด ๋ณต์žก๋„ O(N^2 log N)

โžก N <= 1500 ์ด๋ฏ€๋กœ ํ†ต๊ณผ ๊ฐ€๋Šฅ

โœ… ์ฃผ์š” ๋ฉ”์„œ๋“œ ์š”์•ฝ

๋ฉ”์„œ๋“œ ์„ค๋ช…
add(E e) ํ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. (๊ณต๊ฐ„ ๋ถ€์กฑ ์‹œ ์˜ˆ์™ธ ๋ฐœ์ƒ)
offer(E e) ํ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. (add()์™€ ์œ ์‚ฌํ•˜๋‚˜ ์‹คํŒจ ์‹œ false ๋ฐ˜ํ™˜)
poll() ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ (๋น„์–ด ์žˆ์œผ๋ฉด null)
remove() poll()๊ณผ ์œ ์‚ฌํ•˜๋‚˜, ํ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ์˜ˆ์™ธ ๋ฐœ์ƒ
peek() ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜ํ™˜ (๋น„์–ด ์žˆ์œผ๋ฉด null)
element() peek()๊ณผ ์œ ์‚ฌํ•˜๋‚˜, ํ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ์˜ˆ์™ธ ๋ฐœ์ƒ
size() ํ˜„์žฌ ํ์˜ ์š”์†Œ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
isEmpty() ํ๊ฐ€ ๋น„์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€ ๋ฐ˜ํ™˜
clear() ํ์˜ ๋ชจ๋“  ์š”์†Œ ์ œ๊ฑฐ
contains(Object o) ํŠน์ • ์š”์†Œ ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธ
toArray() ํ์˜ ์š”์†Œ๋“ค์„ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
iterator() ํ์˜ ์š”์†Œ๋“ค์„ ์ˆœํšŒํ•  Iterator ๋ฐ˜ํ™˜ (์ •๋ ฌ ์ˆœ์„œ ์•„๋‹˜)

๐Ÿ”„ ์šฐ์„ ์ˆœ์œ„ ์„ค์ • ๋ฐฉ๋ฒ•

  • ๊ธฐ๋ณธ: ์˜ค๋ฆ„์ฐจ์ˆœ (Min-Heap)
  • PriorityQueue<Integer> pq = new PriorityQueue<>(); // ๊ธฐ๋ณธ min-heap
  • ๋‚ด๋ฆผ์ฐจ์ˆœ: Max-Heap
  • PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
  • ์‚ฌ์šฉ์ž ์ •์˜ ์ •๋ ฌ:
  • PriorityQueue<String> pq = new PriorityQueue<>((a, b) -> b.length() - a.length());

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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค PCCP๋ชจ์˜๊ณ ์‚ฌ#1 4๋ฒˆ๋ฌธ์ œ  (0) 2025.05.14
๋ฐฑ์ค€ 1043๋ฒˆ: ๊ฑฐ์ง“๋ง(java)  (1) 2025.05.07
๋ฐฑ์ค€ 13114: List of Unique Numbers(ํŒŒ์ด์ฌ)  (0) 2025.04.28
22251๋ฒˆ: ๋นŒ๋Ÿฐ ํ˜ธ์„(ํŒŒ์ด์ฌ)  (0) 2025.04.26
๋ฐฑ์ค€ 4179: ๋ถˆ!(ํŒŒ์ด์ฌ)  (0) 2025.04.26
'์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค PCCP๋ชจ์˜๊ณ ์‚ฌ#1 4๋ฒˆ๋ฌธ์ œ
  • ๋ฐฑ์ค€ 1043๋ฒˆ: ๊ฑฐ์ง“๋ง(java)
  • ๋ฐฑ์ค€ 13114: List of Unique Numbers(ํŒŒ์ด์ฌ)
  • 22251๋ฒˆ: ๋นŒ๋Ÿฐ ํ˜ธ์„(ํŒŒ์ด์ฌ)
quokkaST
quokkaST
  • quokkaST
    stquokka
    quokkaST
    • ๊ฐœ๋ฐœ์ž (77)
      • n8n (2)
      • CS๊ณต๋ถ€ (46)
        • Java & Spring (15)
        • ์ธํ”„๋ผ (7)
        • ์šด์˜์ฒด์ œ & ์‹œ์Šคํ…œ (9)
        • ๊ธฐํƒ€ CS์ง€์‹ (7)
        • ๋„คํŠธ์›Œํฌ (6)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (2)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (16)
      • ํ”„๋กœ์ ํŠธ (8)
        • ๊ฐ์ •&๊ธˆ์œต์ฑ—๋ด‡ (8)
      • ๋ฆฌํŒฉํ† ๋ง (5)
        • horong (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ƒ๋‹จ์œผ๋กœ

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