https://www.acmicpc.net/problem/10989
// 프로덕션코드
public class Yun_10989 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numberOfElements = scanner.nextInt();
int[] array = new int[numberOfElements];
for (int i = 0; i < numberOfElements; i++) {
array[i] = scanner.nextInt();
}
int[] countingNumberOfElements = new int[100000001];
for (int i = 0; i < array.length; i++) {
countingNumberOfElements[array[i]]++;
}
for (int i = 0; i < countingNumberOfElements.length; i++) {
for(int j=0; j<countingNumberOfElements[i]; j++){
System.out.println(i);
}
}
}
}
// 시간초과! 출력을 하나씩 해주려면 끝까지 가줘야하네... 아? 천만까지가 범위인데 억단위까지 갔구나! 수정하고 다시 출력해보자!
// 그래도 시간초과! 아... 하나하나의 숫자는 만보다 작거나 같은 수네.. 그럼 10001까지만 만들어주면 되네요.. 수정!
// 또 시간초과!... 어디서 더 줄일 수 있을까?
// 프로덕션코드
import java.util.Scanner;
public class Yun_10989 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numberOfElements = scanner.nextInt();
int[] countingNumberOfElements = new int[10001];
for (int i = 0; i < numberOfElements; i++) {
countingNumberOfElements[scanner.nextInt()]++;
}
for (int i = 0; i < countingNumberOfElements.length; i++) {
for(int j=0; j<countingNumberOfElements[i]; j++){
System.out.println(i);
}
}
}
}
// 입력받는 동시에 값을 넣었는데도 시간초과! 원래 카운팅 정렬이 자연수 정렬할때는 엄청 빠른걸로 알고 있는데
// 내 코드는 왜 이렇게 느릴까...? ㅠㅠ 시간이 더 줄어들 수가 없는데... 일단 보류!
'코딩테스트연습 > 백준' 카테고리의 다른 글
[백준 - JAVA] 2775번 부녀회장이 될테야 (0) | 2021.12.18 |
---|---|
[백준 - JAVA] 2292번 벌집 (0) | 2021.12.18 |
[백준 - JAVA] 10814번 나이순 정렬 (0) | 2021.12.15 |
[백준 - JAVA] 1181번 단어 정렬 (0) | 2021.12.15 |
[백준 - JAVA] 11650번 좌표 정렬하기 (0) | 2021.12.15 |