문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV139KOaABgCFAYh
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이
문제에서 100개의 상자 높이를 받고 가장 높은곳의 상자를 가장 낮은 곳에 옮겨준다고 한다.
그리고 두 높이의 차이를 구하면 답이 된다.
따라서 정렬을 이용하여 높이순으로 정렬하고 가장 높은곳의 높이를 하나빼주고 가장 낮은곳의 높이를 하나 더해주면 된다.
코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
for(int test_case = 1; test_case <= 10; test_case++)
{
int arr [] = new int [100];
int dump = Integer.parseInt(br.readLine());
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[0] + 1;
arr[99] = arr[99] - 1;
}
Arrays.sort(arr);
System.out.println("#"+test_case+" "+(arr[99]-arr[0]));
}
}
}