728x90
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제입력 |
예제출력 |
5 5 2 3 4 1 |
1 2 3 4 5 |
문제풀이
처음에 아래와 같이 문제를 풀어 통과했다.
다만, 여러번 더 테스트해보고자 여러가지 작성해보았는데 번번히 실패했다
지문을 해석해보자면 1 ~ 1000의 N 값이 주어지고 1 ~ 1000까지 정수가 나온다는 법은 없다.
이 점은 번번히 틀리다가 상기하게 되었고, 만약 Scanner의 next() 문자열로 받을 경우
정렬 할 때 숫자가 아닌 문자 기준으로 정렬하기 때문에 숫자의 순서가 이상하게 될 수 있다.
"1"
"11"
"100"
"2"
이런식으로 말이다.
결국, 숫자를 정렬하는 것이기 때문에 다음과 같이 풀면 되겠다.
import java.util.*;
public class Main{
public static void main(String[]args){
Scanner scan = new Scanner(System.in);
int[] n = new int[scan.nextInt()];
for(int i = 0; i < n.length; i++){
n[i] = scan.nextInt();
}
Arrays.sort(n);
for(int data : n){
System.out.println(data);
}
}
}
728x90
'Etc > problem solving' 카테고리의 다른 글
백준 1712, 손익분기점 (0) | 2021.11.12 |
---|---|
백준 1316, 그룹 단어 체커 (0) | 2021.11.06 |
백준 2941, 크로아티아 알파벳 (0) | 2021.11.03 |
백준 5622, 다이얼 (0) | 2021.11.03 |
백준 2908, 상수 (0) | 2021.11.03 |