오늘 풀어볼 문제는 백준 10989번 문제 "수 정렬하기 3" 이다.
이 문제는 브론즈1 문제이고 기수 정렬 문제이다.
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다.
둘째 줄부터 N개의 줄에는 수가 주어진다.
이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
📌첫 번째 도전📌
문제는 기수 문제로 풀라고 되어 있었지만, 시간 제한이 3초나 되는데 굳이 기수 정렬을 할 필요가 없었다. sort 라이브러리로도 충분히 구현이 가능하다 판단이 들어서 간단히 구현했다.
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(st.nextToken());
long[] arr = new long[N];
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine());
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
for(int i=0; i<N; i++) {
bw.write(arr[i] + "\n");
}
bw.flush();
bw.close();
}
}