백준 2750번 수 정렬하기

Montag·2023년 1월 31일
1

문제풀이

목록 보기
3/10

2750번 수 정렬하기

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

입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

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

예제 입력 1
5
5
2
3
4
1

예제 출력 1
1
2
3
4
5


나의 풀이

기존에 몇 번 풀어보았던 형식의 정렬이다
제한시간은 1초, 수의 범위는 1<=N<=1000이다

따라서 반복문을 통해 전체 검색을 해도 시간초과가 뜨지 않을 것이라 생각하고
반복문을 통한 정렬을 수행했다

문제는 오름차순으로 정리해야 한다
코드는 다음과 같다

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

public class _2750_수_정렬하기 {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(bf.readLine());
		int temp = 0;
		int[] arr = new int[T];

		for (int i = 0; i < T; i++) {
			StringTokenizer st = new StringTokenizer(bf.readLine());
			int a = Integer.parseInt(st.nextToken());
			arr[i] = a;
		}

		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr.length; j++) {
				if (arr[i] < arr[j]) {
					temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
					
				}
			}

		}

		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}

	}

}

문제점

수의 범위가 작기 때문에 순차적으로 검색해서 정렬이 가능했다

다른 정렬 방법을 더 고려해봐야 할 것 같다


더 쉬운 풀이

Arrays.sort(arr)

한 문장만 추가하면 알아서 정렬해준다

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

public class _2750_수_정렬하기 {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(bf.readLine());
		int temp = 0;
		int[] arr = new int[T];

		for (int i = 0; i < T; i++) {
			StringTokenizer st = new StringTokenizer(bf.readLine());
			int a = Integer.parseInt(st.nextToken());
			arr[i] = a;
		}

		Arrays.sort(arr);

		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}

	}
profile
안녕하세요

3개의 댓글

comment-user-thumbnail
2023년 2월 1일

배열 안쓰고 풀어주세요 ㅠㅠ

1개의 답글
comment-user-thumbnail
2023년 2월 3일

키보드 없이 풀어주세요

답글 달기