Daily coding
Java Basic : day 6 - Example 07 : 정렬 메소드로 구현 sorting() 본문
Language/Java_basic
Java Basic : day 6 - Example 07 : 정렬 메소드로 구현 sorting()
sunnnkim 2019. 11. 26. 18:26package 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]);
//
// }
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 7 - 가변인수란? (0) | 2019.11.26 |
---|---|
Java Basic : day 6 - Example 08 : Baseball게임 소스코드 메소드 분리하기 (0) | 2019.11.26 |
Java Basic : day 6 - Example 06 : 암호화/복호화 메소드 구현하기 (0) | 2019.11.26 |
Java Basic : day 6 - Example 05 : 배열의 값 2배로 올리는 GetDouble() 메소드 (0) | 2019.11.26 |
Java Basic : day 6 - Example 04 : 숫자인지 확인하는 IsNumber()메소드 (0) | 2019.11.26 |