처음 풀었을 때 케이스 1개를 틀렸었는데 이유를 보니 횟수가 1번일 경우는 largestNum과 smallestNum의 변화 없이 결과값이 도출되었던 것이 원인이었다. 그래서 dumpNum을 하나 늘려주었더니 통과하였다.
for(int test_case = 1; test_case <= T; test_case++)
{
int dumpNum = sc.nextInt();
dumpNum++;
ArrayList <Integer> boxs = new ArrayList<>();
int largestNum = 0;
int smallestNum = 100;
for(int i = 0; i < 100; i++){
int next = sc.nextInt();
boxs.add(next);
largestNum = Math.max(largestNum, next);
smallestNum = Math.min(smallestNum, next);
}
for(int i = 0; i < dumpNum; i++){
if(largestNum - smallestNum <= 1){
continue;
}
if(boxs.contains(largestNum)){
boxs.set(boxs.indexOf(largestNum), boxs.get(boxs.indexOf(largestNum))-1);
if(boxs.contains(smallestNum))
boxs.set(boxs.indexOf(smallestNum), boxs.get(boxs.indexOf(smallestNum))+1);
else{
smallestNum ++;
boxs.set(boxs.indexOf(smallestNum), boxs.get(boxs.indexOf(smallestNum))+1);
}
}
else {
largestNum--;
boxs.set(boxs.indexOf(largestNum), boxs.get(boxs.indexOf(largestNum))-1);
if(boxs.contains(smallestNum))
boxs.set(boxs.indexOf(smallestNum), boxs.get(boxs.indexOf(smallestNum))+1);
else{
smallestNum ++;
boxs.set(boxs.indexOf(smallestNum), boxs.get(boxs.indexOf(smallestNum))+1);
}
}
}
System.out.println("#"+test_case+" "+ (largestNum-smallestNum));
}