mport java.util.Random;
import java.util.Scanner;
public class Mmethod {
// 1. 사용자로부터 숫자 개수 입력 받는 함수 //3유형 output(반환값 있어서) 사용자의 입력을 받고
public static int getNumber() {
Scanner scanner = new Scanner(System.in);
int n;
while (true) { // 사용자가 올바른 숫자를 입력할때까지 계속 물어보기
System.out.print("정렬할 숫자의 개수를 입력하세요 (3 이상, 10 이하): ");
n = scanner.nextInt(); //입력받을 숫자 저장 => n
if (3<= n && n <= 10) {
break; // 숫자가 3 이상, 10이하를 입력하면 while문을 빠져나감
}
System.out.println("숫자는 3 이상 10 이하 합니다. 다시 입력해주세요.");
// 만약 그렇지않으면 "다시 입력해주세요" 문구를 출력
}
return n; // 입력 받은 값을 반환
}
// 2. 1부터 100 사이의 랜덤 숫자 생성하는 함수 //4유형 Input Output
public static int[] randomArray(int size) { //size라는 매개변수를 받으므로 input이 존재
Random random = new Random();
int[] arr = new int[size]; //여러 숫자를 저장할 arr 변수를 선언하고, size만큼의 공간을 가짐
for (int i = 0; i < arr.length; i++) { // 배열의 길이
arr[i] = random.nextInt(100) + 1; // 1부터 100 사이의 랜덤 숫자 생성
}
return arr; //만들어진 랜덤 배열 값을 반환
}
// 3. 배열 출력 함수
public static void printArray(int[] arr, String message) { //배열을 출력하고,배열과 함께 출력할 메시지도 받음
System.out.println(message);
for (int num : arr) { // 배열 속 숫자 출력
System.out.print(num + " "); // 배열의 요소를 출력
}
System.out.println(); // 줄 바꿈
}
// 4. 선택 정렬 알고리즘 함수
public static void selectionSort(int[] arr) { //입력을 받고 출력만 하니까
int n = arr.length;
// 배열의 첫 번째 값부터 마지막 값까지 반복
for (int i = 0; i < n - 1; i++) {
int minIndex = i; // 현재 인덱스를 최소값 인덱스로 설정
// 현재 인덱스 이후의 배열에서 최소값을 찾기 위한 반복
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) { // 더 작은 값을 찾으면
minIndex = j; // 최소값 인덱스를 업데이트
}
}
// 최소값이 현재 위치에 있지 않으면 교환
if (minIndex != i) {
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
}
//매개변수가 있다면 Input O
//반환값이 있다면 Output O
// 메인 함수
public static void main(String[] args) {
// 1. 사용자 입력 받기 -3유형 Output
int size = getNumber(); // 값에 의한 호출
// 2. 랜덤 숫자 생성 - 4유형 Input Output
int[] arr = randomArray(size); //배열 길이 정하기
// 3. 생성된 배열 출력 - 2유형 Input
printArray(arr, "생성된 배열:"); // 입력받은 개수만큼 랜덤 숫자 생성
// 4. 선택 정렬 알고리즘 실행 - 2유형 Input
selectionSort(arr); // 만들어진 랜덤 숫자들을 화면에 보여짐
// 5. 정렬 완료된 배열 출력 - 2유형 Input
printArray(arr, "정렬 후 배열:");
}
}
'JAVA > 코드' 카테고리의 다른 글
자바 -클래스 (0) | 2025.02.17 |
---|---|
15일차 과제 - UPDOWN게임 (0) | 2025.02.06 |
정렬 - 선택, 버블, 삽입 (0) | 2025.01.30 |
강의 4일차 문제 풀기 (0) | 2025.01.30 |
강의 3일차 문제풀기- 반복문 (0) | 2025.01.30 |