728x90
https://www.acmicpc.net/problem/1427
1427번: 소트인사이드
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
이번 문제는 couning 정렬을 사용하면 아주 쉽게 풀 수 있는 문제이다.
각 자리수를 값으로 입력받기 위해 정수를 입력받아 10으로 나누어 나머지값을 사용하는 방법이 있고, 문자열로 값을 입력받아 각 문자의 아스키값을 통해 정렬해도 된다.
나는 문자열을 입력받아 아스키값을 이용해 각 자리수 값을 구하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long[] countingSort = new long[10];
StringBuilder sb = new StringBuilder();
String str = br.readLine();
for (int i = 0; i < str.length(); i++) {
countingSort[str.charAt(i) - '0']++;
}
for (int i = 9; i >= 0; i--) {
while (countingSort[i] > 0) {
sb.append(i);
countingSort[i]--;
}
}
System.out.println(sb);
br.close();
}
}
'백준 > 정렬' 카테고리의 다른 글
BOJ 11651 - 좌표 정렬하기2 (0) | 2022.11.14 |
---|---|
BOJ 11650 - 좌표 정렬하기 (0) | 2022.11.14 |
BOJ 2108 - 통계학 (0) | 2022.11.08 |
BOJ 10989 - 수 정렬하기3 (0) | 2022.11.08 |
BOJ 2751 - 수 정렬하기2 (0) | 2022.11.08 |