CS/Algorithm
[SWEA/Python, Java] SW Expert Academy 1208번 - Flatten
sohy
2023. 8. 1. 14:51
SW Expert Academy #1208 Flatten
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
Python ver.
for i in range(1, 11):
dump = int(input())
height = list(map(int, input().split()))
for _ in range(dump):
height.sort()
height[0] += 1
height[-1] -= 1
height.sort()
print(f'#{i} {height[-1] - height[0]}')
Java ver.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.io.IOException;
class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (int i = 1; i < 11; i++) {
// 입력
int dump = Integer.parseInt(br.readLine());
int[] height = new int[100];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < height.length; j++) {
height[j] = Integer.parseInt(st.nextToken());
}
for (int j = 0; j < dump; j++) {
Arrays.sort(height);
height[0] += 1;
height[99] -= 1;
}
Arrays.sort(height);
System.out.println("#" + i + " " + (height[99] - height[0]));
}
} // end of main
} // end of class
가장 높은 곳에 있는 상자를 가장 낮은 곳으로 보내야 간격이 최소화 될 수 있다. 따라서 오름차순 정렬 후 맨 뒤 값에서 1 빼고, 맨 앞 값에서 1 더하는 것을 제한 횟수만큼 반복한다.
- Java 정렬 : Arrays.sort();