[Java]BOJ 1026 : ๋ณด๋ฌผ

2024. 12. 6. 22:30ยทAlgorithm

https://www.acmicpc.net/problem/1026

๐Ÿšฉ๋ฌธ์ œ

๐Ÿ”“๋ฌธ์ œํ•ด๊ฒฐ

1.๋ฐฐ์—ดA์™€ ๋ฐฐ์—ดB์˜ ๋˜‘๊ฐ™์€ ์œ„์น˜์— ์žˆ๋Š” ๊ฐ’๋ผ๋ฆฌ ๊ฐ๊ฐ ๊ณฑํ•˜๊ณ  ๋ชจ๋‘ ๋”ํ•ด์ค€๋‹ค.

=>์ด ๊ฐ’์ด ์ตœ์†Œ๊ฐ’์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ๋Œ“๊ฐ’*์ตœ์†Ÿ๊ฐ’์„ ๊ณ„์† ํ•ด์ค˜์•ผํ•œ๋‹ค.

2.๋ฌธ์ œ์—์„œ B๋Š” ์žฌ๋ฐฐ์—ดํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ์กฐ๊ฑด์ด ์žˆ๋‹ค.

3.์šฐ์„  A๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ํ•ด์ค€๋‹ค.

4.๋‚ด๋ฆผ์ฐจ์ˆœ๋œ B๋ฐฐ์—ด์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ์œ„ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

5. ์ƒˆ๋กœ์šด ๋ฐฐ์—ด C์— ์ธ๋ฑ์Šค๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.

 

6.๋ฐฐ์—ดC์˜ ์ •๋ ฌ์„ Comparator์˜ compare๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜์—ฌ ๋ฐฐ์—ดB๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋งž์ถฐ์ค€๋‹ค.

(๋ฐฐ์—ดB์— ์žˆ๋Š”๊ฐ’์„ ๋‚ด๋ฆผ์ฐจ์ˆœํ•œ๋‹ค -> ๊ทธ ๊ฐ’์˜ ์œ„์น˜๊ฐ’์„ ๋ฐฐ์—ดC์— ๋„ฃ๋Š”๋‹ค. )

 

7.for๋ฌธ์„ ๋Œ๋ฉด์„œ ๋ฐฐ์—ดa์™€ ๋ฐฐ์—ดb๋ฅผ ๊ฐ๊ฐ ๊ณฑํ•˜๋ฉด์„œ ๊ฒฐ๊ณผ๊ฐ’์— ๋”ํ•ด์ค€๋‹ค.

(๋ฐฐ์—ดB๋Š” ๋ฐฐ์—ดC์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•œ๋‹ค.)

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


public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        int n = Integer.parseInt(br.readLine()); //์ •์ˆ˜ n
        int [] arrA = new int[n];
        int [] arrB = new int[n];

        st=new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) { //a๋ฐฐ์—ด ์ž…๋ ฅ๋ฐ›์Œ
            arrA[i]=Integer.parseInt(st.nextToken());
        }

        st=new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) { //b๋ฐฐ์—ด ์ž…๋ ฅ๋ฐ›์Œ
            arrB[i]=Integer.parseInt(st.nextToken());
        }
        Arrays.sort(arrA); //a ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

        Integer [] bIndex = new Integer[arrB.length];
        for(int i=0; i<arrB.length; i++){
            bIndex[i]=i;
        }
        Arrays.sort(bIndex, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return arrB[o1] - arrB[o2]; 
            }
        }); //์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        int result=0; //๊ฒฐ๊ณผ๊ฐ’ ์ €์žฅ
        for(int i=0; i<n;i++){
            result+=arrA[n-1-i]*arrB[bIndex[i]];
        }
        System.out.println(result);
    }
}

๋ฉ”๋ชจ๋ฆฌ : 14324KB, ์‹œ๊ฐ„ : 104ms

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

[Java]BOJ 2776 : ์•”๊ธฐ์™•  (0) 2025.01.13
[Java]BOJ 1388 : ๋ฐ”๋‹ฅ์žฅ์‹  (0) 2024.12.07
[Java]BOJ 16112 : 5์ฐจ ์ „์ง  (0) 2024.12.03
BOJ 1863 : ์Šค์นด์ด๋ผ์ธ ์‰ฌ์šด๊ฑฐ  (0) 2024.12.03
BOJ 11557 : Yangjojang of The Year -JAVA  (1) 2024.12.03
'Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java]BOJ 2776 : ์•”๊ธฐ์™•
  • [Java]BOJ 1388 : ๋ฐ”๋‹ฅ์žฅ์‹
  • [Java]BOJ 16112 : 5์ฐจ ์ „์ง
  • BOJ 1863 : ์Šค์นด์ด๋ผ์ธ ์‰ฌ์šด๊ฑฐ
m.<jj
m.<jj
  • m.<jj
    JJ
    m.<jj
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (24)
      • Study (14)
        • Python (7)
        • Java (4)
        • HTML-CSS (1)
        • error (1)
        • Redis (0)
      • Algorithm (9)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

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

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
m.<jj
[Java]BOJ 1026 : ๋ณด๋ฌผ
์ƒ๋‹จ์œผ๋กœ

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