Daily coding

Java Basic : day 6 - Example 07 : 정렬 메소드로 구현 sorting() 본문

Language/Java_basic

Java Basic : day 6 - Example 07 : 정렬 메소드로 구현 sorting()

sunnnkim 2019. 11. 26. 18:26
package day6;

import java.util.Arrays;
import java.util.Scanner;

public class Ex07_SortingFunction {
	public static void main(String[] args) {
		
		
		/*
		 //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));
			
		
		
// 내 코드	
//		// 올림차순 
//		if( updown  ) {
//			for (int i = 0; i < sortArr.length -1 ; i++) {
//				for (int j = i+1; j < sortArr.length; j++) {
//					if(sortArr[i] > sortArr[j]) {
//						temp = sortArr[i];
//						sortArr[i] = sortArr[j];
//						sortArr[j] = temp;
//					}
//				}
//			}
//			
//			
//		}
//		// 내림차순 
//		else if(ud == 2) {
//			for (int i = 0; i < sortArr.length -1 ; i++) {
//				for (int j = i+1; j < sortArr.length; j++) {
//					if(sortArr[i] < sortArr[j]) {
//						temp = sortArr[i];
//						sortArr[i] = sortArr[j];
//						sortArr[j] = temp;
//					}
//				}
//			}
//		}else {
//			System.out.println("잘못 선택했습니다.");
//		}
//		
//		// 결과 출력
//		if(str == 1 || str == 2) {
//		System.out.println(" 정렬 전 : " + Arrays.toString(originArr));
//		System.out.print(" 정렬 후 : ");
//		for (int i = 0; i < sortArr.length-1; i++) {
//			System.out.print( sortArr[i] + " - ");
//		}System.out.println(sortArr[sortArr.length-1]);
//		
//		}
		
	}
	
}