
정렬 문제 중 마지막 문제로 해쉬맵을 사용해서 푸는 문제
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 (중복을 확인하기위함)