최's 먹공로그
SW expert Academy 1208_[S/W 문제해결 기본]1일차_Flatten 본문
https://www.swexpertacademy.com/main/code/problem/problemDetail.do
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 |
import java.util.Arrays;
import java.util.Scanner;
public class Solution_1208_SW문제해결기본1일차_Flatten_최성호 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for(int tc = 1; tc <= 10; tc++) {
// 입력
int dump = sc.nextInt();
int[] box = new int[100];
for(int i = 0; i < 100; i++) {
box[i] = sc.nextInt();
}
int max = 0, min = 999, result = 0;
// dump동안 max, min 구해서 max--, min++ 해주기
/*for(int j = 0; j < dump; j++) { // dump동안 반복
for(int k = 0; k < 100; k++) { // box의 값에 인덱스
if(max < box[k]) { // box값중에서 max값을 구하고 최종 max값의 index를 구함
max = box[k];
max_index = k;
}
if(min > box[k]) { // box값중에서 min값을 구하고 최종 min값의 index를 구함
min = box[k];
min_index = k;
}
}
box[max_index]--;
box[min_index]++;
max = 0;
min = 999;
}*/
// 더 간편한 방법
Arrays.sort(box); // 오름차순으로 정렬 해주고
for(int j = 0; j < dump; j++) {
Arrays.sort(box); // dump동안 계속 정렬
box[0]++; // 처음값이 최소값이므로 ++
box[99]--; // 끝값이 최대값이므로 --
}
for(int l = 0; l < 100; l++) { // dump를 끝낸 배열에서
if(max < box[l]) { // 최대값을 저장
max = box[l];
}
if(min > box[l]) { // 최소값을 저장
min = box[l];
}
}
result = max - min; // 결과를 저장
System.out.println("#" + tc + " " + result);
} // end of tc
} // end of main
}
|
cs |
'APS' 카테고리의 다른 글
SW expert Academy 5432_쇠막대기 자르기 (0) | 2019.02.03 |
---|---|
SW expert Academy 1210_[S/W 문제해결 기본] 2일차_Ladder1 (0) | 2019.02.03 |
SW expert Academy 5431_민석이의 과제 체크하기 (0) | 2019.02.03 |
백준10026_적록색약 (0) | 2019.02.03 |
백준2667_단지번호붙이기 (0) | 2019.02.03 |