기몽수
코딩 기록일지
기몽수
전체 방문자
오늘
어제
  • 분류 전체보기 (443)
    • 알고리즘 - SWEA (210)
      • D1 (19)
      • D2 (25)
      • D3 (143)
      • D4 (21)
      • D5 (2)
    • 알고리즘 - Programmers (74)
      • Unrated (34)
      • Lv 0 (4)
      • Lv 1 (3)
      • Lv 2 (32)
      • Lv 3 (1)
    • 알고리즘 - Baekjoon (158)
      • Bronze (1)
      • Silver (65)
      • Gold (90)
      • Platinum (2)
    • 취업 (0)
    • SSAFY (1)
hELLO · Designed By 김용수.
기몽수

코딩 기록일지

알고리즘 - SWEA/D2

[SW expert Academy] SWEA 1966번 숫자를 정렬하자 자바(Java)

2023. 10. 17. 21:18

[D2] 숫자를 정렬하자 - 1966

문제 링크

성능 요약

메모리: 20,956 KB, 시간: 147 ms, 코드길이: 714 Bytes

제출 일자

2023-10-17 21:06

출처: SW Expert Academy, https://swexpertacademy.com/main/code/problem/problemList.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

import java.util.*;
import java.io.*;

class Solution
{
	public static void main(String args[]) throws Exception
	{
		Scanner sc = new Scanner(System.in);
        int[] input;

        int T=sc.nextInt();
		for(int tc = 1; tc <= T; tc++)
		{
            int N = sc.nextInt();
        	input = new int[N];    
            for(int i = 0; i < N; i++){
                input[i] = sc.nextInt();
            }
            
            // Arrays.sort(input); -> 가장 기본
            // bubbleSort(input); -> bubble sort
            // selectionSort(input); -> select sort
            insertionSort(input); -> insertion sort
            
            
            System.out.print("#" + tc + " ");
            printArray(input);
		}
	}
    
    private static void insertionSort(int[] arr){
        for(int i = 1; i < arr.length; i++){
            int tmp = arr[i];
            int j = i - 1;
            while(j >= 0 && tmp < arr[j]){
                arr[j+1] = arr[j];
                j--;
            }
            arr[j+1] = tmp;
        }
    }
    
    private static void selectionSort(int[] arr){
        for(int i = 0; i < arr.length - 1; i++){
            // 최소값을 가지는 idx
            int minIdx = i;
            // i + 1부터 끝까지 비교해서 최소값인 인덱스를 찾음
            for(int j = i + 1; j < arr.length; j++){
                if(arr[j] < arr[minIdx]){
                    minIdx = j;
                }
            }
            swap(arr,i,minIdx);
        }
    }
    
    private static void bubbleSort(int[] arr){
        for(int i = 0; i < arr.length - 1; i++){
        	for(int j = 0; j < arr.length - 1 - i; j++){
            	if(arr[j] > arr[j+1]){
                    swap(arr,j,j+1);
                }
            }
        }
    }
    
    private static void swap(int[] arr, int i, int j){
        int tmp = arr[i];
        arr[i] = arr[j];
    	arr[j] = tmp;
    }
    
    private static void printArray(int[] arr){
        for(int num : arr){
            System.out.print(num + " ");
        }
        System.out.println();
    }
}

'알고리즘 - SWEA > D2' 카테고리의 다른 글

[SW expert Academy] SWEA 1959번 두 개의 숫자열 자바(Java)  (0) 2023.10.18
[SW expert Academy] SWEA 1961번 숫자 배열 회전 자바(Java)  (0) 2023.10.18
[SW expert Academy] SWEA 1970번 쉬운 거스름돈 자바(Java)  (1) 2023.10.17
[SW expert Academy] SWEA 1974번 스도쿠 검증 자바(Java)  (0) 2023.10.17
[SW expert Academy] SWEA 1976번 시각 덧셈 자바(Java)  (0) 2023.10.17
    '알고리즘 - SWEA/D2' 카테고리의 다른 글
    • [SW expert Academy] SWEA 1959번 두 개의 숫자열 자바(Java)
    • [SW expert Academy] SWEA 1961번 숫자 배열 회전 자바(Java)
    • [SW expert Academy] SWEA 1970번 쉬운 거스름돈 자바(Java)
    • [SW expert Academy] SWEA 1974번 스도쿠 검증 자바(Java)
    기몽수
    기몽수

    티스토리툴바