티스토리 뷰

Solved.ac Class 완전정복 프로젝트

Class : 2 ~ 2 ++

 


 

링크

https://www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

출력본ㅇ
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 

 

접근방법

 정렬 알고리즘을 사용할 줄 아는지에 대한 문제이다.

 

풀이

 사실 굳이 본인이 구현하지 않아도, Arrays.sort() 메소드를 통해 쉽게 해결할 수 있다. 

간단하게 선택 정렬과 삽입정렬 만들어서 추가해 놓았다. (조만간 정렬 알고리즘에 대해 따로 포스팅 할 예정이다.)

 

코드

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) throws IOException {
        Main test =new Main();
    }

    public Main() throws IOException {
        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int tc = Integer.parseInt(br.readLine());
        int[] datas = new int[tc];
        for (int i = 0 ; i < tc ; i++){
            datas[i] = Integer.parseInt(br.readLine());
        }

        Arrays.sort(datas);

        for (int data : datas){
            sb.append(data+"\n");
        }

        System.out.println(sb);
    }

	public void selectionSort(int[] datas){

        for(int i=0; i < datas.length-1; i++){
            int min  = i ;
            for(int j=i+1 ; j < datas.length; j++){
                if(datas[min] > datas[j]){
                    min = j;
                }
            }
            int tmp = datas[i];
            datas[i] = datas[min];
            datas[min] = tmp;

        }
    }

    public void insertsort(int[] datas){

        for(int i=1; i < datas.length; i++) {
            for (int j = i; j > 0; j--) {

                if (datas[j] < datas[j - 1]) {
                    int tmp = datas[j];
                    datas[j] = datas[j - 1];
                    datas[j - 1] = tmp;
                } else {
                    break;
                }

            }
        }
    }
  
}

결과

 


포스팅에 문제가 있거나, 설명이 잘못된 부분 지적 환영합니다.

더 나은 퀄리티의 콘텐츠를 제공할 수 있도록 노력하겠습니다.

읽어주셔서 감사합니다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함