Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

끄적끄적

SWE Flatten 본문

알고리즘

SWE Flatten

yenacathy97 2021. 8. 6. 21:04

ArrayList를 통해 배열을 정렬하고 가장 큰수에서 1을 빼고 가장 작은수에서 1을 더한다.

재귀를 통해 지정된 횟수만큼 반복하면서 매번 sort해준다.

package day0803;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;

public class Flatten {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

		for (int t = 0; t < 10; t++) {
			int count = Integer.parseInt(bf.readLine());
			String s = bf.readLine();
			StringTokenizer st = new StringTokenizer(s);
			List<Integer> arr = new ArrayList<>();
			while (st.hasMoreTokens()) {
				arr.add(Integer.parseInt(st.nextToken()));

			}
			System.out.println("#:" + (t + 1) + " " + dump(arr, count, 0));

		}

	}

	static int dump(List<Integer> arr, int count, int cnt) {

		Collections.sort(arr);
		if (count > cnt) {
			arr.set(0, arr.get(0) + 1);
			arr.set(arr.size() - 1, arr.get(arr.size() - 1) - 1);
			dump(arr, count, cnt + 1);
		}

		return (arr.get(arr.size() - 1) - arr.get(0));

	}

}

'알고리즘' 카테고리의 다른 글

SWE 달뱅이 숫자  (0) 2021.08.06
SWE Ladder1  (0) 2021.08.06
SWE 상호의 배트필드  (0) 2021.08.06
SWE 농작물 수확하기  (0) 2021.08.06
SWE 파리 퇴치  (0) 2021.08.06
Comments