[java] 백준 1427번 소트인사이드알고리즘/백준2021. 8. 1. 15:30
Table of Contents
이 문제를 보기 전 아래의 문제를 보면 오름차순으로 정렬하였을 때는 Arrays.sort()를 써주었으면 되었는데 이번 문제는 내림차순이다.
물론 Collections.sort를 이용하여 내림차순 정렬을 할 수 있긴 하겠지만... 보아하니 방법이 어려워 보여서 간단한 방법으로 풀어보았다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[10];
// int count = 0;
while(N != 0){
arr[N%10]++;
N = N/10;
// count++; // count = 10;
}
for(int j=arr.length -1; j>=0; j--){
while(arr[j]-- >0)
System.out.print(j);
}
}
}
입력에 N은 N은 1,000,000,000보다 작거나 같은 자연수라고 하였기 때문에 배열을 1000000000개를 만들어야되나? 아니면 string으로 풀어서 하나씩 끊어서 해야 되나라고 생각할 수도 있겠지만...
예제 입력1 부분을 보게 되면 2143을 입력받아 4321로 출력하는 것을 볼 수 있다.
나 같은 경우에는 2143을 입력받아 각 자리를 배열에 담아주면 되겠다 싶어
N%10 한 결과를 arr배열의 해당 자리에다 넣어주었다. => arr [N%10]
(2143%10 = 3, 2143/10 = 214) -> (214%10= 4, 214/10 = 21)
배열엔 (arr[3], arr [4]가 들어가게 될 것이고)나중에 배열을 거꾸로 돌렸을 때 내림차순이 되도록 하기 위해서이다.
입력에서 N은 1,000,000,000보다 작거나 같은 자연수라고 했기 때문에 배열의 개수는 10개를 만들어주었다.
1000000000을 10으로 계속 나누어서 count를 세보면 10개라고 나오기 때문이다.
위의 코드에 주석을 달아놨으니 잘 모르겠다면 한번 돌려보는 것도 좋다.
'알고리즘 > 백준' 카테고리의 다른 글
[java] 백준 2355번 시그마 (0) | 2021.08.04 |
---|---|
[java] 백준 5586번 JOI와 IOI (2) | 2021.08.02 |
[java] 백준 5086번 배수와 약수 (4) | 2021.07.31 |
[java] 백준 2750번 수 정렬하기 (2) | 2021.07.30 |
[java] 백준 2455번 지능형 기차 (0) | 2021.07.29 |
@펄찌 :: Pearl's Story
펄의 일상이 궁금한 사람 요기~
즐거운 하루 되셨으면 좋겠습니다😊