728x90
반응형
풀이 :
Arrays.sort(arr), arr[0]--; arr[99]++; 출력 전에 다시 sort 해준 뒤 최대 - 최소
Code - sort를 안쓰고 했을 때
public class Solution1208 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for (int tc = 1; tc <= 10; tc++) {
int N = sc.nextInt();
int[] arr = new int[100];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
for (int i = 0; i < N; i++) {
int high = 0;
int low = 100;
int highTemp = 0;
int lowTemp = 0;
// 배열 초기화를 해줘야 함. 안그러면 누적된 값으로 비교가 됨.
for (int j = 0; j < arr.length; j++) {
if (arr[j] < low) {
low = arr[j];
lowTemp = j;
} else continue;
}
for (int j = 0; j < arr.length; j++) {
if (arr[j] > high) {
high = arr[j];
highTemp = j;
} else continue;
}
if (arr[highTemp] - arr[lowTemp] <= 1) {
break;
}
arr[highTemp]--;
arr[lowTemp]++;
}
int high = 0;
int low = 100;
for (int i = 0; i < arr.length; i++) {
high = Math.max(high, arr[i]);
low = Math.min(low, arr[i]);
}
int result = high - low;
System.out.println("#" + tc + " " + result);
}
}
}
sort를 사용한 깔끔한 풀이
/** Arrays.sort 사용하면 훨씬 깔끔한 풀이
* for (int t = 1; t <= 10; t++) {
* int dump = Integer.parseInt(br.readLine());
*
* int[] arr = new int[100];
* StringTokenizer st = new StringTokenizer(br.readLine());
* for (int i = 0; i < 100; i++) {
* arr[i] = Integer.parseInt(st.nextToken());
* }
*
* for (int i = 0; i < dump; i++) {
* Arrays.sort(arr);
* arr[0]++;
* arr[99]--;
* }
* Arrays.sort(arr);
* int result = arr[99] - arr[0];
* System.out.println("#" + t + " " + result);* }
*/
728x90
반응형
'SWEA' 카테고리의 다른 글
swea 1213 [D3] [S/W 문제해결 기본] 3일차 - String JAVA (0) | 2023.11.22 |
---|---|
swea 1209 [D3] [S/W 문제 해결 기본] 2일차 - Sum JAVA (0) | 2023.11.22 |
swea 1206 [D3] [S/W 문제 해결 기본] 1일차 - View JAVA (1) | 2023.11.22 |
swea 2007 [D2] 패턴 마디의 길이 JAVA (1) | 2023.11.22 |
swea 2005 [D2] 파스칼의 삼각형 JAVA (0) | 2023.11.22 |