JAVA 예제 : 올림차순으로 정렬된 배열 출력

:-)·2022년 3월 22일
0

문제

정수 배열을 입력받아 올림차순으로 정렬된 배열을 출력하는 메서드를 만드시오.

예) int arr = { 5, 3, 4, 2, 1 }
Lineup(arr);
결과: 1 2 3 4 5

힌트 1. 배열을 입력받는 메서드는 다음과 같이 생성하면 된다.
public static void Method(int[] arr)
 
힌트 2."선택정렬"은 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.
       주어진 배열 중에 최솟값을 찾는다.
       -> 그 값은 맨 앞에 위치한 값과 교체한다.
       -> 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체한다.          


✍ 소스코드

public class ArrayQ {

	public static void main(String[] args) {
		
		int[] testArr = {5, 3, 4, 2, 1};
		
		Lineup(testArr);
		
	}
	
	public static void Lineup(int[] arr) {
		/*
		 * 0번째 기준 일 때 1번째부터 마지막번째까지 비교,
		 * 1번째 기준 일 때 2번째부터 마지막번째까지 비교 ... 
		 * 
		 * 1. arr.length - 1 	(마지막 숫자는 최댓값이라서 굳이 비교할 필요가 없다.)
		 * 2. i랑 j비교 			(i기준 그 다음숫자랑 비교하기 위해 j = i + 1)
		 * 3. 인덱스 바꾸기			(i와 j비교중 j가 더 작은 수라면 j의 수를 i로 바꿔야 한다.)
		 * 4. 변수 저장공간 만들기		(j번째수를 i에 덮을 때 원래 i번째의 수를 저장하기 위한 변수) 
		 */
		
		int a1 = 0;  	// 저장 장소
		
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = i + 1; j < arr.length; j++) {
				
				if(arr[i] > arr[j]) {
					a1 = arr[i];		// i번째 수가 클 때 j번째 수랑 인덱스 바꿔주기
					arr[i] = arr[j]; 
					arr[j] = a1;
				}
			}
		}
		
		for (int i = 0; i < arr.length; i++) {	// 정렬된 순서대로 출력
			System.out.println(arr[i]);
		}
	}
}

👉 출력 결과

1
2
3
4
5

➕ 배열로 출력하는 법

* java.util.ArraystoString() 메소드 사용하기

java.util.ArraystoString() 메소드는 파라미터로 배열을 입력받은 후
배열의 값들을 문자열 형태로 바꿔서 리턴해준다.
import java.util.Arrays;

public class ArrayQ {
	public static void main(String[] args) { 
		
		int[] arr = {75, 32, 14, 20, 111};
		System.out.println(lineUp(arr));
		
				
	}
	
	public static String lineUp(int[] arr) {
		int tmp = 0;
		
		for( int i = 0; i < (arr.length - 1); i++) {
			for( int j = 0; j < (arr.length - i - 1); j++) {
				if (arr[j] > arr[j+1]) {
					tmp = arr[j+1];
					arr[j+1] = arr[j];
					arr[j] = tmp;
				}
			}
		} 
		
		return (Arrays.toString(arr));
	}

}

👉 출력 결과

[14, 20, 32, 75, 111]

0개의 댓글