[문제링크 - SWEA - Flatten] https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV139KOaABgCFAYh&categoryId=AV139KOaABgCFAYh&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1#none
Arrays.sort(arr);
위치를 잘 생각했어야 했다.
- 처음에는 아래와 같은 코드로 짰는데, 오류가 났었다.
for(int i=0; i<num; i++){
Arrays.sort(arr);
arr[0]++;
arr[99]--;
}
- 현재 풀이 코드와 같은 의미라고 생각했는데, 마지막에 최소값과 최대값을 뺀 값을 구해야하는데,
-
, +
처리만 해주고 정렬해주지 않아서 최소값이 맨 앞에, 최대값이 맨 뒤에 오지 않았었다.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
for(int t=1; t<=10; t++) {
int num = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
int[] arr = new int[100];
for(int i=0; i<100; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
for(int i=0; i<num; i++){
arr[0]++;
arr[99]--;
Arrays.sort(arr);
}
sb.append("#" + t + " " + (arr[99]-arr[0]) + "\n");
}
System.out.println(sb);
}
}