View

๋ฐ˜์‘ํ˜•

๐Ÿ’ก ๋ฌธ์ œ

๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋ฐฐ์—ด A, B ๋‘๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฐฐ์—ด์€ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.๋ฐฐ์—ด A, B์—์„œ ๊ฐ๊ฐ ํ•œ ๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋ฝ‘์•„ ๋‘ ์ˆ˜๋ฅผ ๊ณฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉฐ, ๋‘ ์ˆ˜๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ ๋ˆ„์ ํ•˜์—ฌ ๋”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์ตœ์ข…์ ์œผ๋กœ ๋ˆ„์ ๋œ ๊ฐ’์ด ์ตœ์†Œ๊ฐ€ ๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. (๋‹จ, ๊ฐ ๋ฐฐ์—ด์—์„œ k๋ฒˆ์งธ ์ˆซ์ž๋ฅผ ๋ฝ‘์•˜๋‹ค๋ฉด ๋‹ค์Œ์— k๋ฒˆ์งธ ์ˆซ์ž๋Š” ๋‹ค์‹œ ๋ฝ‘์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.)

์˜ˆ๋ฅผ ๋“ค์–ด A = [1, 4, 2] , B = [5, 4, 4] ๋ผ๋ฉด

  • A์—์„œ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž์ธ 1, B์—์„œ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž์ธ 5๋ฅผ ๋ฝ‘์•„ ๊ณฑํ•˜์—ฌ ๋”ํ•ฉ๋‹ˆ๋‹ค. (๋ˆ„์ ๋œ ๊ฐ’ : 0 + 5(1x5) = 5)
  • A์—์„œ ๋‘๋ฒˆ์งธ ์ˆซ์ž์ธ 4, B์—์„œ ์„ธ๋ฒˆ์งธ ์ˆซ์ž์ธ 4๋ฅผ ๋ฝ‘์•„ ๊ณฑํ•˜์—ฌ ๋”ํ•ฉ๋‹ˆ๋‹ค. (๋ˆ„์ ๋œ ๊ฐ’ : 5 + 16(4x4) = 21)
  • A์—์„œ ์„ธ๋ฒˆ์งธ ์ˆซ์ž์ธ 2, B์—์„œ ๋‘๋ฒˆ์งธ ์ˆซ์ž์ธ 4๋ฅผ ๋ฝ‘์•„ ๊ณฑํ•˜์—ฌ ๋”ํ•ฉ๋‹ˆ๋‹ค. (๋ˆ„์ ๋œ ๊ฐ’ : 21 + 8(2x4) = 29)

์ฆ‰, ์ด ๊ฒฝ์šฐ๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋ฏ€๋กœ 29๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐ์—ด A, B๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์ตœ์ข…์ ์œผ๋กœ ๋ˆ„์ ๋œ ์ตœ์†Ÿ๊ฐ’์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • ๋ฐฐ์—ด A, B์˜ ํฌ๊ธฐ : 1,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฐฐ์—ด A, B์˜ ์›์†Œ์˜ ํฌ๊ธฐ : 1,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜

์ž…์ถœ๋ ฅ ์˜ˆ

A B answer

[1, 4, 2] [5, 4, 4] 29
[1,2] [3,4] 10

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1๋ฌธ์ œ์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2A์—์„œ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž์ธ 1, B์—์„œ ๋‘๋ฒˆ์งธ ์ˆซ์ž์ธ 4๋ฅผ ๋ฝ‘์•„ ๊ณฑํ•˜์—ฌ ๋”ํ•ฉ๋‹ˆ๋‹ค. (๋ˆ„์ ๋œ ๊ฐ’ : 4) ๋‹ค์Œ, A์—์„œ ๋‘๋ฒˆ์งธ ์ˆซ์ž์ธ 2, B์—์„œ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž์ธ 3์„ ๋ฝ‘์•„ ๊ณฑํ•˜์—ฌ ๋”ํ•ฉ๋‹ˆ๋‹ค. (๋ˆ„์ ๋œ ๊ฐ’ : 4 + 6 = 10)์ด ๊ฒฝ์šฐ๊ฐ€ ์ตœ์†Œ์ด๋ฏ€๋กœ 10์„ return ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์ฝ”๋“œ

import java.util.*;

class Solution
{
    // ์ž‘์€ ๊ฐ’ * ํฐ ๊ฐ’ -> ์ตœ์†Œํ•ฉ 
    public int solution(int []A, int []B)
    {
        int answer = 0;
        int answer2= 0;
        
        //๋‚ฎ์€ ์ˆซ์ž๊ฐ€ ๋จผ์ € ์„ ํƒ
        PriorityQueue <Integer> lowNumber = new PriorityQueue<>();
        PriorityQueue <Integer> highNumber = new PriorityQueue<>(Collections.reverseOrder());
        
        for (int i=0; i<A.length; i++){
            //A์™€ B์˜ ๊ฐ’์„ ๋„ฃ์Œ 
            lowNumber.add (A[i]);
            highNumber.add(B[i]);
        }
        
           for (int i=0; i<A.length; i++){
            //A์™€ B์˜ ๊ฐ’์„ ๋นผ์„œ ๋”ํ•จ 
            answer +=lowNumber.poll() * highNumber.poll() ;
        }

        return answer;
    }
}

๐Ÿ’ก ๋ณด์™„ํ•  ์ 

  • ํšจ์œจ์„ฑ์„ ์œ„ํ•ด์„œ๋Š” PriorityQueue ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•จ

์ฒ˜์Œ์— A๋ฐฐ์—ด๊ณผ B๋ฐฐ์—ด์—์„œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋Œ๋ฉด์„œ ๊ตฌํ•˜๋Š” ์ค„

๊ทผ๋ฐ ๊ฐ ๋ฐฐ์—ด์—์„œ ์ตœ์†Ÿ๊ฐ’๊ณผ ์ตœ๋Œ“๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ๋ฝ‘์•„์„œ ๊ณ„์‚ฐํ•˜๋ฉด ๋œ๋‹ค

๋ฌธ์ œ๋ฅผ ๊ฑ ์ž˜๋ชป ์ดํ•ดํ•จ

๋ฐ˜์‘ํ˜•
Share Link
reply
๋ฐ˜์‘ํ˜•
ยซ   2025/01   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31