경험의 기록

문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV139KOaABgCFAYh 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.io.FileInputStream;
 
class Solution
{
    public static void main(String args[]) throws Exception
    {
         
        Scanner sc = new Scanner(System.in);
        for(int test_case = 1; test_case <= 10; test_case++)
        {
            int n = sc.nextInt(); // 덤프 횟수
            ArrayList<Integer> list = new ArrayList<>();
            for(int i=0; i<100; i++) {
                list.add(sc.nextInt());
            }
             
            for(int i=0; i<n; i++) {
                int min = Collections.min(list);
                int max = Collections.max(list);
                list.set(list.indexOf(min), min+1);
                list.set(list.indexOf(max), max-1);
            }
            System.out.println("#" + test_case + " " + (Collections.max(list) - Collections.min(list)));
        }
    }
}

덤프 횟수 만큼 반복하여

반복할때마다 최대,최소를 찾아서 최댓값에서 -1 하고, 최솟값에서 +1을 반복하면 된다.

컬렉션의 min,max 를 사용하여 구하였다.

 

반복이 종료 된 후 최댓값에서 최솟값을 뺀 값을 출력하면 된다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading