본문 바로가기

Algorithm/SWEA

[SWEA-1208] Flatten - Java

아무런 알고리즘이 필요없는 간단한 문제입니다. 주어진 횟수만큼 제일 큰 놈에서 제일 작은 놈으로 옮겨주면 됩니다.

가로의 길이가 항상 100개이므로 정렬하면서 가장 큰 쪽을 하나 빼고 가장 작은 쪽을 하나 더하면 됩니다.

import java.util.Arrays;
import java.util.Scanner;

public class Flattern {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String output = "";
        int T;
        T=10;

        for(int test_case = 1; test_case <= T; test_case++) {
            int n = sc.nextInt();
            int [] box = new int[100];

            for(int i = 0; i< 100;i++) 
                box[i] = sc.nextInt();

            Arrays.sort(box);
            for(int i = 0; i<n; i++) {
                box[0]++;
                box[99]--;

                Arrays.sort(box);
            }
            output += "#" + test_case + " " + (box[99] - box[0]) + "\n";
        }
        System.out.println(output);
    }

}

C++에서는 max_element(), min_element()로 바로 찾아줘서 계산해주면 더 쉽겠는디

자바에서도 이런 메소드가 있는지는 아직 모르겠슴니다.. 검색해봐야겠슴다..

 


이제야 깨닫게 된 자바 매우 꿀팁
배열 출력할 때
System.out.println(Arrays.toString(array));
하면 됨니다...
증말 편하네

감사함니다 ^_^