mun dev

[Java] 배열 정렬하기(오름차순, 내림차순) 본문

공부/Java

[Java] 배열 정렬하기(오름차순, 내림차순)

mndev 2022. 12. 23. 13:06

배열 정렬 오름차순 Sort 메소드 사용하기 


오늘은 프로그래머스 문제를 풀면서 만난 자바 배열 정렬하기 오름차순, 내림차순에 대해 작성해보려 합니다! 

 

자바는 Sort() 메소드를 사용하여 정렬 할 수 있는데요. 

 

Array.sort(배열변수)를 사용하면 오름차순 정렬이 가능합니다. 

 

 

import java.util.Arrays;
class Solution {
    public int solution(int[] array) {
        int answer = 0;
        int center=0;
        
        Arrays.sort(array); // 오름차순 정렬 
        
        center=array.length/2; // 배열의 중앙 구하기, 길이가 6이라면 center는 3
        answer=array[center]; // 배열의 중앙 값을 answer에 삽입 
        return answer; // 배열의 중앙값 리턴 
    }
}

위 코드는 배열의 입력 값 중에서 중앙값을 찾는 코드입니다. 

 

중앙 값을 리턴하기 위해서는 먼저 sort 메소드를 사용하여

오름차순 정렬을 한 후 중앙값을  리턴합니다. 

 

 

코드를 실행 한 후에 결과화면 

 

 

문제를 풀면서 오름차순 정렬은 sort메소드를 사용해서 진행했다면, 내림차순 정렬은 어떻게 구현해야 할까요?

 

 

 

배열 정렬 내림차순 Sort 메소드 사용하기


배열 내림차순에서는 오름차순과 같이 한다면 에러가 뜨는 경우가 발생합니다.

 

int에서 Collections.reverseOrder()를 사용할 수 없기 때문에 생기는 오류입니다.

 

배열 내림차순을 하기 위해 int[]가아닌 Integer[]로 변수를 선언합니다.

 

import java.util.Arrays;
import java.util.Collections;

public class Desc {
	public static void main(String[] args)  {	
		Integer[] array = {31, 29, 10, 7, 1, 40}; 
		
		Arrays.sort(array, Collections.reverseOrder()); //내림차순 정렬 
		
		for(int i = 0; i < array.length; i++)
		{
			System.out.println(array[i]);
		}
	}
}

배열을 내림차순 한 결과입니다! 

 

 

< 정리 >

  • 자바에서는 배열 정렬을  sort 메소드를 이용해 정렬
  • 내림차순일 경우에는 Integer로 배열 선언해서 정렬하기!
  • 내림차순일 경우에는 Collection import, Collection.reverseOrder() 사용하기