차곡차곡

[SWEA/Python, Java] SW Expert Academy 1208번 - Flatten 본문

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();
Comments