https://www.acmicpc.net/problem/10989
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
일반 입출력 Scanner, System.out.println을 쓰면 시간초과가 난다.
import java.io.*;
import java.util.*;
public class Main
{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int P = Integer.valueOf(br.readLine());
int[] input = new int[P];
for(int i=0; i<P; i++){
input[i] = Integer.valueOf(br.readLine());
}
Arrays.sort(input);
for(int i : input){
bw.write(i+"\n");
}
bw.close();
}
}
정렬이 아닌 카운트를 하는 방법
import java.io.*;
class Main
{
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int[] cnt = new int[10001];
for (int i = 0; i < N; i++) {
int n = Integer.parseInt(br.readLine());
cnt[n]++;
}
for (int i = 1; i <= 10000; i++)
while(cnt[i]-- > 0) {
bw.write(i + "\n");
}
bw.flush();
}
}
'Problem Solving > 구현' 카테고리의 다른 글
BOJ10448 유레카이론* (1) | 2024.01.30 |
---|---|
BOJ3273 두 수의 합* (1) | 2024.01.29 |
BOJ10431 줄세우기 (1) | 2024.01.29 |
BOJ1236 성지키기 (1) | 2024.01.29 |
BOJ10158 개미 (0) | 2024.01.29 |