Daily coding

Java Basic : day 5 - 정렬 프로그램 짜기(sorting program) 본문

Language/Java_basic

Java Basic : day 5 - 정렬 프로그램 짜기(sorting program)

sunnnkim 2019. 11. 22. 19:10

sorting program 만들기

/* 선언부
  
  입력 : 몇개를 sorting하시겠습니까?
  >> 입력값
  
   동적할당 
  >> 숫자 (갯수에 맞추어 입력 받는다)
  1. 올림차순(1) 2. 내림차순(2)
  >> 입력값
  
  정렬 
   
  결과 출력
 
 */

// 선언 
Scanner sc = new Scanner(System.in);
String sortArr[];
int count;
String str;
boolean updown = true; // 올림, 내림

// 1. input

System.out.println("몇 개를 정렬하시겠습니까 ? ");
System.out.print(">> ");
count = sc.nextInt();

// 동적할당
sortArr = new String[count];
// 숫자 입력 

int w = 0;
boolean ok;
while ( w < sortArr.length) {
           ok = true;
           System.out.print((w+1)+"번째 숫자 : ");
           str = sc.next();
           sortArr[w] = str;

           // 정상적으로 숫자 입력했는지 확인
           for (int i = 0; i < sortArr[w].length(); i++) { // 한 문자 씩 꺼내기
                      int n = sortArr[w].charAt(i);
                      if( n < 48 || n > 57) {
                                 ok = false;
                                 break;
                      }
           }
           if( ok == false) {
                     System.out.println("잘못 입력했습니다. 다시 입력하세요");
                      continue;
           }
           w++;
}

String originArr[]  =sortArr.clone();

System.out.println("번호를 선택하세요 :");
System.out.println("올림차순(1) 내림차순(2)");
System.out.print(">> ");
int ud  = sc.nextInt();
if(ud == 1) updown = true;
else updown = false;

// 2. 대입
// 숫자로 변환해줄 배열 선언하여 대입
int number[] = new int[sortArr.length];

for (int i = 0; i < number.length; i++) {
           number[i]  = Integer.parseInt(sortArr[i]);
}

// 3. sorting 
int temp;
for (int i = 0; i < number.length -1; i++) {
           for (int j = i + 1; j < number.length; j++) {
                      if(updown == true) {
                                 if(number[i] > number[j]) {
                                            temp = number[i];
                                            number[i] = number[j];
                                            number[j] = temp;
                                 }
                      }else {
                                 if(number[i] < number[j]) {
                                            temp = number[i];
                                            number[i] = number[j];
                                            number[j] = temp;
                                 }
                     }            
           }
}


// 4. 결과 출력
System.out.println("정렬 전 : " + Arrays.toString(sortArr));
System.out.println("정렬 후 : " + Arrays.toString(number));