import java.io.*;
import java.lang.*;
import java.util.*;
public class Main {
public static final Scanner scanner = new Scanner(System.in);
public static void selectionSort(int[] data, int n){ //정수형 배열과 크기를 입력 받음
for(int i = 0; i < n; i++){ //배열의 크기만큼 1씩 증가하며 실행
int idx = i; //idx(최솟값을 담을 변수)를 선언
for(int j = i; j < n; j++){
if(data[j] < data[idx]){ //만약 data[idx](현재 최소값)보다 data[j]가 작다면
idx = j; //idx에 j를 대입
}
}
/**
* i(현재 인덱스 시작 위치)와 idx(현재 최소값)의 위치를 바꾸는 과정
*/
int tmp = data[i]; //tmp에 i(현재 인덱스 시작 위치)를 임시 저장
data[i] = data[idx]; //i에 idx(현재 최소값)을 대입
data[idx] = tmp; //idx에 임시 저장한 tmp(기존 i, 현재 인덱스 시작 위치)를 대입
}
}
public static void main(String[] args) throws Exception {
int n = scanner.nextInt();
int[] data = new int[n];
for(int i = 0 ; i < n ; i++)
{
data[i] = scanner.nextInt();
}
selectionSort(data, n);
for(int i = 0; i < n ; i ++)
{
if( i > 0 )
{
System.out.print(" ");
}
System.out.print(data[i]);
}
}
}
10주 완성 알고리즘 코딩테스트 - goorm edu에서 들으실 수 있는 내용입니다.
'알고리즘' 카테고리의 다른 글
검색 조건: 생일(month)과 생일이 일치하는 도토리 중 가장 큰 키를 갖는 도토리를 반환하는 함수 (1) | 2023.04.21 |
---|---|
1부터 정수 n까지 1 + (1 + 2) + (1 + 2 + 3) + .... + (1 + 1이상 n 이하 모든 정수의 합 )과 같은 식의 합을 구하는 알고리즘 (0) | 2023.04.19 |
입력 받은 정수형 배열에서 배열 평균과 가장 가까운 원소의 값과 순서(인덱스 +1)를 반환하는 알고리즘 (0) | 2023.04.17 |
입력 받은 문자열 배열에서 원하는 값의 첫번째 원소와 마지막 원소를 찾는 알고리즘 (0) | 2023.04.14 |
입력 받은 정수형 배열에서 원하는 값이 있는 인덱스를 반환하는 알고리즘 (0) | 2023.04.13 |