1 λΆ„ μ†Œμš”

πŸ“ [S2_18870] μ’Œν‘œ μ••μΆ•

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

public class Main {
    static StringTokenizer st;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        // 수 개수
        int N = Integer.parseInt(br.readLine());
        
        // 숫자 μ €μž₯ λ°°μ—΄
        int[] arr = new int[N];
        // 숫자 μ •λ ¬ λ°°μ—΄
        int[] sort = new int[N];

        // 숫자 λ„£κΈ°
        Map<Integer,Integer> map = new HashMap<Integer, Integer>();
        

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

        // μ •λ ¬
        Arrays.sort(sort);

        int index = 0;


        // μˆœμœ„ 숫자 λ„£μ–΄μ£ΌκΈ°
        for(int i=0; i<N; i++){
            // λ§Œμ•½ map μ•ˆμ— 값이 μ—†λ‹€λ©΄ ( μƒˆλ‘œμš΄ κ°’ )
            if(!map.containsKey(sort[i])){
                map.put(sort[i], index);
                index++;
            }
        }

        // κ°’ λ„£μ–΄μ£ΌκΈ°
        for(int i =0; i<N; i++){
            sb.append(map.get(arr[i])).append(" ");
        }

        System.out.println(sb);
        
    }
}

πŸ€” λ‚˜μ˜ 생각

μ²˜μŒμ— 문제만 보고 μ’Œν‘œ 압좕이 λ­”κ°€ ν–ˆλ‹€..
κ·Έλž˜μ„œ 예제λ₯Ό 보고 뢄석해본 κ²°κ³Ό 말이 μ’Œν‘œ 압좕이지 정렬을 ν•΄μ„œ μˆœμœ„λ₯Ό 좜λ ₯ν•˜λŠ” κ²ƒμ΄μ˜€λ‹€.
μ–΄λ–»κ²Œ ν• κΉŒ κ³ λ―Όν•˜λ‹€κ°€ map을 μ‚¬μš©ν•˜μ—¬ keyκ°’μ—λŠ” 배열값을 value κ°’μ—λŠ” μˆœμœ„λ₯Ό λ„£κΈ°λ‘œ ν•˜μ˜€λ‹€.
λ‘κ°œμ˜ 배열에 같은 값을 μž…λ ₯을 받은 λ’€ ν•˜λ‚˜μ˜ 배열은 정렬을 μ‹œμΌœ map 에 넣도둝 ν•˜μ˜€λ‹€.
map에 λ°°μ—΄ 값이 μ—†μœΌλ©΄ λ„£μ–΄μ£Όκ³  indexλ₯Ό 1μ”© μΆ”κ°€ν•΄μ„œ μˆœμœ„λ₯Ό μž…λ ₯μ‹œμΌœμ£Όμ—ˆλ‹€.
λ‹€ μž…λ ₯ 받은 λ’€ λ‹€λ₯Έ ν•˜λ‚˜μ˜ 배열에 μžˆλŠ” κ°’κ³Ό 비ꡐλ₯Ό ν•˜μ—¬ μˆœμœ„λ₯Ό 좜λ ₯ν•΄μ£Όμ—ˆλ‹€.
문제λ₯Ό μ΄ν•΄ν•˜κ³ λ‚˜λ‹ˆ 비ꡐ적 어렡지 μ•Šμ€ λ¬Έμ œμ˜€λ‹€. class3 끝 !!
이제 class 4둜 κ°„λ‹€ !