๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด

๋ฐฑ์ค€๊ธธ๋ผ์žก์ด(1-3) ํƒ์ƒ‰๊ณผ ์ •๋ ฌ ๋ฌธ์ œํ’€์ด

by sh119 2024. 8. 28.

ํƒ์ƒ‰๊ณผ ์ •๋ ฌ ๋ฌธ์ œํ’€์ด(2) 

์•„๋ž˜ ๋ฌธ์ œ๋“ค์€ java๊ธฐ์ค€ Comparator ํด๋ž˜์Šค๋ฅผ implements ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  compare ๋ฉ”์„œ๋“œ๋ฅผ @Override ํ•˜์—ฌ ์›ํ•˜๋Š” ์กฐ๊ฑด์œผ๋กœ ์ •๋ ฌ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š”๊ฒŒ ๊ด€๊ฑด์ธ ๋ฌธ์ œ๋“ค์ด๋‹ค.

์ด์™ธ์˜ ๊ณต๋ถ€ํ•  ์‚ฌํ•ญ์€ ์—†์–ด๋ณด์ด๋Š” ์‰ฌ์šด ์ •๋ ฌ ๋ฌธ์ œ๋“ค์ด๋‹ค.

 

 

A  1026 ๋ณด๋ฌผ https://www.acmicpc.net/problem/1026

package baekjoon.part01_03;

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

import static java.util.Comparator.reverseOrder;

// ๋ฐฑ์ค€๊ธธ๋ผ์žก์ด part01_03 ํƒ์ƒ‰๊ณผ ์ •๋ ฌ : 1026 ๋ณด๋ฌผ
public class Num1026_๋ณด๋ฌผ {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine());

        int[] a = new int[n];
        Integer[] b = new Integer[n];
        for(int i=0; i<n; i++){
            a[i] = Integer.parseInt(st.nextToken());
        }
        st = new StringTokenizer(br.readLine());
        for(int i=0; i<n; i++){
            b[i] = Integer.parseInt(st.nextToken());
        }

        Arrays.sort(a);
        Arrays.sort(b, (o1,o2)->o2-o1);

        int answer = 0;
        for(int i=0; i<n; i++){
            answer += a[i]*b[i];
        }

        System.out.println(answer);

    }

}

 

 

B  1181 ๋‹จ์–ด ์ •๋ ฌ https://www.acmicpc.net/problem/1181

package baekjoon.part01_03;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;

// ๋ฐฑ์ค€๊ธธ๋ผ์žก์ด 1-3 ํƒ์ƒ‰๊ณผ ์ •๋ ฌ : ๋‹จ์–ด ์ •๋ ฌ
public class Num1181_๋‹จ์–ด์ •๋ ฌ {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        Set<String> set = new HashSet<>();
        for(int i=0; i<n; i++){
            set.add(br.readLine());
        }

        String[] arr = set.toArray(new String[set.size()]);
        Arrays.sort(arr, new myComparator());

        for(int i=0; i<arr.length; i++){
            System.out.println(arr[i]);
        }

    }

}

class myComparator implements Comparator<String>{
    @Override
    public int compare(String s1, String s2){
        int temp = 0;

        if(s1.length() == s2.length()){
            for(int i=0; i<s1.length(); i++){
                if(s1.charAt(i) != s2.charAt(i)){
                    temp =  (int)s1.charAt(i) - (int)s2.charAt(i);
                    break;
                }
            }
        }else{
            temp =  s1.length()  - s2.length();
        }
        return temp;
    }
}

 

 

 

C  11650 ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ https://www.acmicpc.net/problem/11650

package baekjoon.part01_03;

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

public class Num11650_์ขŒํ‘œ์ •๋ ฌํ•˜๊ธฐ {

    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][2];
        for(int i=0; i<n; i++){
            StringTokenizer st = new StringTokenizer(br.readLine());
            arr[i][0] = Integer.parseInt(st.nextToken());
            arr[i][1] = Integer.parseInt(st.nextToken());
        }


        Arrays.sort(arr, new coordinateComparator());

        for(int i=0; i<n; i++){
            System.out.println(arr[i][0] + " " + arr[i][1]);
        }

    }

}
class coordinateComparator implements Comparator<int[]> {

    @Override
    public int compare(int[] o1, int[] o2){
        if(o1[0] != o2[0]){
            return o1[0] - o2[0];
        }else{
            return o1[1] - o2[1];
        }
    }

}

 

 

 

C* - 11651 ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2 https://www.acmicpc.net/problem/11651

package baekjoon.part01_03;

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 Num11651_์ขŒํ‘œ์ •๋ ฌํ•˜๊ธฐ2 {

    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][2];

        for(int i = 0; i < n; i++){
            StringTokenizer st = new StringTokenizer(br.readLine());
            arr[i][0] = Integer.parseInt(st.nextToken());
            arr[i][1] = Integer.parseInt(st.nextToken());
        }

        Arrays.sort(arr, new coordinate2Comparator());
        for(int i=0; i<n; i++){
            System.out.println(arr[i][0] + " " + arr[i][1]);
        }

    }
}
class coordinate2Comparator implements Comparator<int[]>{

    @Override
    public int compare(int[] o1, int[] o2){
        if(o1[1] != o2[1]){
            return o1[1] - o2[1];
        }else{
            return o1[0] - o2[0];
        }
    }

}

 

 

 

 

D  10867 ์ค‘๋ณต ๋นผ๊ณ  ์ •๋ ฌํ•˜๊ธฐ https://www.acmicpc.net/problem/10867

package baekjoon.part01_03;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;

public class Num10867_์ค‘๋ณต๋นผ๊ณ ์ •๋ ฌํ•˜๊ธฐ {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        Set<Integer> set = new HashSet<>();
        StringTokenizer st = new StringTokenizer(br.readLine());
        for(int i=0; i<n; i++){
            set.add(Integer.parseInt(st.nextToken(" ")));
        }

        Integer[] arr = set.toArray(new Integer[set.size()]);
        Arrays.sort(arr);
        for(int i=0; i<arr.length; i++){
            System.out.print(arr[i] + " ");
        }

    }

}