[java] 백준 - 좌표압축

동훈·2024년 4월 2일


정렬 문제 중 마지막 문제로 해쉬맵을 사용해서 푸는 문제

package Baekjoon;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;

public class B_18870Ref {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int [] origin = new int[N];
        int [] sorted = new int[N];
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();

        for (int i = 0; i < N; i++) {
            origin[i] = sorted[i] = sc.nextInt();
        }
        Arrays.sort(sorted);

        int rank = 0;
        for(int value: sorted){
            if (!map.containsKey(value)){
                map.put(value, rank);
                rank++;
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int key: origin){
            int ranking = map.get(key);
            sb.append(ranking).append(' ');
        }
        System.out.println(sb);
    }
}

map.containskey = 키값이 이미 존재할 경우 true, 아니면 false (중복을 확인하기위함)

profile
성실함 한스쿱

0개의 댓글