728x90
반응형
[swexpert] 1208. Flatten
문제 출처
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | import java.util.Arrays; import java.util.Scanner; public class Solution_1208 { static int max = 0; public static int flatten(int arr[], int dump, int step) { if(dump < step) { return max; } else { if(arr[0] != arr[arr.length-1]) { arr[arr.length-1]--; arr[0]++; } Arrays.sort(arr); //System.out.println(Arrays.toString(arr)); max = arr[arr.length-1] - arr[0]; return flatten(arr, dump, step+1); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] box = new int[100]; //박스 수 for (int i = 1; i <= 10; i++) { int dump = sc.nextInt(); for (int j = 0; j < box.length; j++) { box[j] = sc.nextInt(); } Arrays.sort(box); System.out.print("#"+i +" "); System.out.println(flatten(box, dump, 1)); } /* for (int i = 1; i <= 10; i++) { int max = 0; // 최대 높이 차 int dump = sc.nextInt(); // 덤프 횟수 for (int j = 0; j < box.length; j++) { box[j] = sc.nextInt(); // 박스별 높이 입력 } for (int j = 0; j < dump; j++) { // 덤프 수만큼 반복 int maxBox = 1; // 최소 1부터 int minBox = 100; // 최대 100까지 int maxNum = 0; // 최고 높이 박스 넘버 int minNum = 0; // 최소 높이 박스 넘버 for (int k = 0; k < box.length; k++) { if(maxBox <= box[k]) { // 최대높이 박스 넘버 구하기 maxBox = box[k]; maxNum = k; } if(minBox >= box[k]) { // 최소높이 박스 넘버 구하기 minBox = box[k]; minNum = k; } } box[maxNum]--; // 최고 높이 박스의 높이 하나 감소 box[minNum]++; // 최소 높이 박스의 높이 하나 증가 maxNum = 0; // 다시 초기화 minNum = 0; // 다시 초기화 for (int k = 0; k < box.length; k++) { if(maxBox <= box[k]) { // 최대높이 박스 넘버 구하기 maxBox = box[k]; maxNum = k; } if(minBox >= box[k]) { // 최소높이 박스 넘버 구하기 minBox = box[k]; minNum = k; } } max = box[maxNum] - box[minNum]; // 덤프 하나 옮긴 후 최고점과 최저점 차이 } System.out.println("#" + i + " " + max); } */ } } | cs |
728x90
반응형
'Algorithm > SWEA' 카테고리의 다른 글
[swexpert] 1225. 암호생성기 (0) | 2019.01.11 |
---|---|
[swexpert] 1206. View (0) | 2019.01.11 |
[swexpert] 5431. 민석이의과제체크하기 (0) | 2019.01.08 |
[swexpert] 2063. 중간값 찾기 (0) | 2019.01.07 |
[swexpert] 1204. 최빈수 구하기 (0) | 2019.01.07 |