https://www.acmicpc.net/problem/10989
문제 설명
Java 권장 시간 3초 메모리 권장 512MB만족하려면 해결해야 할 문제입니다.
제시된 시간은 이전 문제에 대한 TEST 데이터에 비해 분명히 부족합니다.
그래서 우리는 가장 빠른 카운팅 다양성으로 문제를 해결해야 합니다.
문제를 해결하다
이 문제에서 가장 중요한 것은 속도입니다.
속도 때문에 문제가 해결되지 않는 경우가 많습니다.
내가 아는 가장 빠른 정렬은 병합 정렬, 힙 정렬 및 카운트 정렬입니다.
정렬 계산 문제를 해결해 봅시다.
계산하기 정렬에 관해서는 이 기사를 읽는 것이 좋습니다.
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));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
int() arr = new int(10001);
for (int i = 0; i < n; i++) {
arr(Integer.parseInt(br.readLine()))++;
}
br.close();
/*
해당 배열을 그냥 처음부터 있는 수만큼 출력한다는 개념으로
for문과 while문을 만들어 구현한다.
*/
for (int i = 0; i < arr.length; i++) {
while (arr(i)-- > 0) {
sb.append(i).append('\n');
}
}
System.out.println(sb);
}
}
중요한 것은 이를 해결하려면 BufferReader 및 StringBuilder를 사용해야 합니다.
입력과 출력도 시간 사용에 포함되는데 scanner와 system.out.println만 사용하면 시간이 존중되지 않아 문제를 해결할 수 없습니다.