[SWEA 1208] Flatten

Paul Kang·2021년 8월 29일
0

알고리즘

목록 보기
1/6
post-thumbnail

💡 Learned

평탄화 작업을 할 때 정렬을 먼저 하면 배열의 마지막 요소와 처음 요소를 이용해 쉽게 접근이 가능했습니다.

📑 Submitted

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;

public class Solution {

	public static void main(String[] args) throws Exception {

		Scanner sc = new Scanner(System.in);

		for (int tc = 1; tc <= 10; tc++) {
			int cnt = sc.nextInt(); // 덤프횟수 1~1000

			int[] nums = new int[100]; // 가로 방향은 100
			for (int i = 0; i < nums.length; i++) {
				nums[i] = sc.nextInt();
			}

			// 평탄화 작업
			while (true) {
				Arrays.sort(nums); // 정렬하기

				int high = nums[99] - nums[0]; // 최고점과 최저점의 차이

				if (high <= 1 || cnt <= 0) { // 평탄화 완료 혹은 덤프횟수를 다 쓴 경우
					System.out.println("#" + tc + " " + high);
					break;
				}
				// 평탄화 완료가 아직이고 or 덤프횟수가 남은 경우
				cnt--;
				nums[99]--;
				nums[0]++;
			}
		}
		sc.close();
	}
}
profile
뭐든 기록하면 자산!

0개의 댓글