본문 바로가기

알고리즘/Jungol

[Java] 정올기초다지기 함수2-자가진단07

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package 함수2.자가진단07;
 
import java.util.Scanner;
 
public class Main {
 
    public static void descending() {
        Scanner sc = new Scanner(System.in);
        int arr [] = new int [10];
        
        for(int i=0;i<10;i++) {        //10개의 값을 입력받아서 배열에 저장.
            arr[i] = sc.nextInt();            
        }
        for(int i=0;i<9;i++) {        // 9번의 비교를 통하여 내림차순 정렬.
            for(int j=0;j<9;j++) {    // 9번의 비교중 한번의 비교동안 9개의 배열값을 비교.
                if(arr[j] < arr[j+1]) {    // 만약 ex) 0번쨰방보다 1번째방이 클때 정렬.
                    int tmp = arr[j];        // 기존 0번째방의 값은 임의의 변수에 임시저장.
                    arr[j] = arr[j+1];        // 1번째 방의 값은 0번째 방으로 이동.
                    arr[j+1= tmp;        // 1번째 방에 0번째 방의 값을 저장.
                }
            }
            for(int k=0;k<10;k++) {    // 저장된 배열들을 첫번째 for문이 종료될때[i] 출력.
                System.out.print(arr[k]+" ");
            }
            System.out.println();        
        }
        sc.close();
    }
    public static void main(String[] args) {
        descending();                //생성한 함수 호출
    }
}
 
 

 

> 15 93 26 8 43 10 25 88 75 19 를 기준으로 봤을때,

   93은 15부다 큽니다.

   그러므로 93은 15의 자리에 들어오게 되고 15는 93의 자리에 들어오게되어

   93 15 26 8 43 10 25 88 75 19가 됩니다.

   또 이기준에서 26은 15보다 크므로 자리교체가되며,

   이방식을 통하여 0번째방에 9번째 방의 순서를 뒤집고,

   그 for문이 한번 종료되게 되면 그때 배열의 값을 출력하는 방법을 사용하였습니다.