μ΅œλŒ€ 1 λΆ„ μ†Œμš”

πŸ“ [D3_1208] Flatten

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
 
public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        for (int t = 1; t <= 10; t++) {
 
            int dump_cnt = sc.nextInt();
            ArrayList<Integer> arr = new ArrayList<Integer>();
            int max,min,result;
 
            //κ°’ μž…λ ₯
            for (int i = 0; i < 100; i++) {
                arr.add(sc.nextInt());
            }
 
             
            //평탄화 μž‘μ—…
            for(int i=0; i<dump_cnt;i++) {
                //μ •λ ¬ ν›„ / 처음 κ°’ : μ΅œμ†Ÿκ°’  / λ§ˆμ§€λ§‰ κ°’ : μ΅œλŒ“κ°’  
                Collections.sort(arr);
                max = arr.get(99);
                min = arr.get(0);
                 
                //평탄화 μž‘μ—…
                max -= 1;
                min += 1;
                 
                //평탄화 μž‘μ—… ν›„ κ°’ λ³€κ²½
                arr.set(99,max);
                arr.set(0, min);
            }
             
            //λ§ˆμ§€λ§‰μ— μ •λ ¬ ν•œλ²ˆ 더 !
            Collections.sort(arr);
            //μ΅œλŒ“κ°’ - μ΅œμ†Ÿκ°’
            result = arr.get(99)-arr.get(0);
 
            System.out.println("#" + t + " " + result);
        }
    }
}

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

이 문제의 핡심은 제일 처음 정렬이기도 ν•˜μ§€λ§Œ λ§ˆμ§€λ§‰μ— ν•œ λ²ˆλ” ν•΄μ£ΌλŠ” 정렬인 것 κ°™λ‹€.
λ§ˆμ§€λ§‰μ— 정렬을 μ•ˆν•΄μ£Όλ©΄ 값이 λ‹€λ₯Ό μˆ˜λ„ 있기 λ•Œλ¬Έμ΄λ‹€.
ArrayList와 sortλ₯Ό μ“°λ©΄ κ°„λ‹¨ν•˜κ²Œ 풀릴 문제 !!