백준 | 정렬 섹션 - 2787번. 대푯값 2, 1427번. 소트인사이드

728x90

2787번. 대푯값 2

입력

첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연수가 주어진다. 주어지는 자연수는 100 보다 작은 10의 배수이다.

출력

첫째 줄에는 평균을 출력하고, 둘째 줄에는 중앙값을 출력한다. 평균과 중앙값은 모두 자연수이다.

내 코드

  • 중앙값은 정렬된 수의 나열에서 중앙에 위치하는 수여야 함
  • Arrays.sort() 사용
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

/* 백준 2587번. 대푯값 2
*/
public class Main {
    //솔루션 함수
    public ArrayList<Integer> solution(int[] arr){
        ArrayList<Integer> answer = new ArrayList<>();
        int tmp = 0;
        //평균값
        for(int i=0; i<5; i++) {
            tmp += arr[i];
        }
        answer.add(tmp /= 5);

        //중앙값
        Arrays.sort(arr);

        answer.add(arr[2]);        

        return answer;
    }

    //실행 메인 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Main T = new Main();

        Scanner kb = new Scanner(System.in);
        int[] arr = new int[5];

        for(int i=0; i<5; i++) {
            arr[i] = kb.nextInt();
        }    
        for(int x: T.solution(arr)) System.out.println(x);
    }
}

1427번. 소트인사이드

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.

내 코드

package to_0524_5;

import java.util.*;

/*1427번. 소트인사이드  */
public class Main {
    //solution
    public String solution(String n ) {
        String answer = "";
        Integer[] tmp = new Integer[n.length()];
        int i = 0;
        for(char x : n.toCharArray()) {
            tmp[i] = Character.getNumericValue(x);
            i++;
        }

        Arrays.sort(tmp, Collections.reverseOrder());

        for(int j = 0; j<tmp.length; j++) {
            answer += tmp[j];
        }

        return answer; 
    }    
    //실행 메인 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String x  = kb.next();
        System.out.println(T.solution(x));
    }
}
728x90