끄적끄적
SWE Flatten 본문
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