반응형
[알고리즘][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);
}
}
}
반응형
'CS > Algorithm' 카테고리의 다른 글
[알고리즘][BOJ][2563] 색종이 (0) | 2018.10.16 |
---|---|
[알고리즘][BOJ][2667] 단지번호 붙이기 (0) | 2018.10.03 |
[알고리즘][DFS][2251] 물통 (0) | 2018.09.27 |
[알고리즘][문자열][1120] 문자열 (1) | 2018.05.04 |
[알고리즘][DFS][2573] 빙산 (0) | 2018.05.01 |
댓글