[java] SWEA - Flatten

세상을 바꾸는 개발자·2023년 5월 12일
0

[문제링크 - SWEA - Flatten] https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV139KOaABgCFAYh&categoryId=AV139KOaABgCFAYh&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1#none

  • Arrays.sort(arr); 위치를 잘 생각했어야 했다.
  • 처음에는 아래와 같은 코드로 짰는데, 오류가 났었다.
			for(int i=0; i<num; i++){
            Arrays.sort(arr);
				arr[0]++;
				arr[99]--;
			}
  • 현재 풀이 코드와 같은 의미라고 생각했는데, 마지막에 최소값과 최대값을 뺀 값을 구해야하는데, -, + 처리만 해주고 정렬해주지 않아서 최소값이 맨 앞에, 최대값이 맨 뒤에 오지 않았었다.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Solution {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		//BufferedReader br = new BufferedReader(new FileReader("input1208.txt"));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		for(int t=1; t<=10; t++) {
			int num = Integer.parseInt(br.readLine());
			st = new StringTokenizer(br.readLine());
			int[] arr = new int[100];
			
			for(int i=0; i<100; i++) {
				arr[i] = Integer.parseInt(st.nextToken());
			}
	
			Arrays.sort(arr);
			for(int i=0; i<num; i++){
				arr[0]++;
				arr[99]--;
				Arrays.sort(arr);
			}
			
			sb.append("#" + t + " " + (arr[99]-arr[0]) + "\n");
		}
		
		System.out.println(sb);
	}

}
profile
초심 잃지 않기

0개의 댓글

관련 채용 정보