문제
(출처: 백준 홈페이지)
수정 전 코드
package AlgorithmPkg;
import java.util.Arrays;
import java.util.Scanner;
public class b2750 {
public static void main(String[] args) {
// 내 사고과: 배열 안에서 사용자가 입력한 수 만큼의 값이 나오고 그 뒤에 오름차순
int[] size = new int[1000];
//배열을 선언하고 Scanner로 사용자로부터 값을 입력받는다..?
Scanner sc = new Scanner(System.in);
int num =sc.nextInt();
Arrays.sort(); // 값들 오름차순 정렬, sort()는 int가 아닌 배열에만 적용된다.
// num으로 할 때는 오류가 발생하는데 배열 size로 하면 오류가 발생하지 않는다.
for(int i:num) {
System.out.println("[+i+]");
}
// 중복 제거 (if문 활용)
}
}
[ 내가 구현하지 못했던 점 ]
1. 정확히 배열과 Scanner을 어느 때에 적재적소에 배치해야 하는지 잘 모르는 듯 했다.
2. sort() 메소드도 java.util.sort()에 있는 것임을 까먹고 있었다.
3. 중복을 제거한다고 하는데 어떤 식으로 중복을 제거해야 하는지 구현 방법을 알지 못했다.
수정 후 코드
package AlgorithmPkg;
import java.util.Arrays;
import java.util.Scanner;
public class b2750 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[N]; // 사용자가 입력한 값을 배열의 크기로 설정
for(int i=0; i<N; i++) {
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
for(int i : arr)
System.out.println(i);
}
}
괜히 꼬아서 생각한 문제가 아닌가 싶었다.
그리고 Array() 말고도 다른 버블정렬이나 삽입정렬 등 사용해서 정렬하는 예제를 많이 봤는데 나중에 기회가 된다면 한 번 도전해봐야 겠다.