문제 번호 10989번 : 수

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만 사용하면 시간이 존중되지 않아 문제를 해결할 수 없습니다.