본문 바로가기
CS/Algorithm

[알고리즘][swea][1208] Flatten

by 별토끼. 2018. 10. 3.
반응형

[알고리즘][swea][1208] Flatten

 

 

 

문제

https://www.swexpertacademy.com/main/solvingProblem/solvingProblem.do

 

풀이

Collections 을 이용하여 빠르게 Sort를 하려고 ArrayList에 값을 입력받았습니다. Max값과 Min값의 차이가 0이나 1일 경우 dump값과 관계없이 for문을 빠져나갑니다. 0, 1이 아닐 경우, Sort 후 Max값, Min값을 찾아 각각 -1, +1을 해주고 다시 Sort합니다.

 

코드

import java.util.ArrayList;
import java.util.Collections;
import java.util.*;

class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        for(int t=1;t<=10;t++) {
            int dump = scan.nextInt();
            scan.nextLine();
            ArrayList<Integer> floor = new ArrayList<>();
            for(int i=0;i<100;i++) {
                floor.add(i);
            }
            for(int i=0;i<100;i++) {
                int tmp = scan.nextInt();
                floor.set(i, tmp);
                
            }
            
            Collections.sort(floor);
            
            for(int i=0;i<dump;i++) {
                if(floor.get(99)-floor.get(0) == 0
                || floor.get(99)-floor.get(0) == 1) {
                    break;
                }
                floor.set(0, floor.get(0)+1);
                floor.set(99, floor.get(99)-1);
                Collections.sort(floor);                            

            }

            int result = floor.get(99)-floor.get(0);
            System.out.println("#"+t+" "+result);
        }
    }

}

 

반응형

댓글