반응형
1. Sort로 풀면 안될것 (개수가 10000000개 이기 때문에 시간초과)
-> 배열을 이용한다. (예를 들어 3번이 4번 나왔다면 arr[3]++ 를 사용하여 개수를 늘려준다.)
2. Scanner 사용을 하면 안됨 (★★★★★★★★★★★★★★★★)
-> BufferedReader ,BufferedWriter 를 사용한다.
+ bufferedwriter의 flush() 함수를 사용해도 시간 초과가 뜬다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] arr = new int[10001]; // 10000000 개이기 때문에 sort를 사용하면 안된다. for (int i = 0; i < N; i++) { arr[Integer.parseInt(br.readLine())] ++; } BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); for (int i = 1; i < 10000; i++) { if (arr[i] > 0) { //arr[i]가 0보다 작거나 같으면 사용된 횟수가 없기 때문에 패스 for (int j = 0; j < arr[i]; j++) { //저장된 갯수만큼 출력해줘야 하기 때문에 bw.write(Integer.toString(i) + "\n"); //bw.flush(); 가끔 사용안하면 이클립스 Console에 출력이 안됨 } } } br.close(); bw.close(); } } | cs |
반응형
'나는요 공부가 좋....은걸... > 알고리즈음' 카테고리의 다른 글
[BOJ] 백준 11507 - 오르막 수 (자바) (0) | 2018.01.10 |
---|---|
[BOJ] 백준 10409 - 서버 (자바) (0) | 2018.01.08 |
[BOJ] 백준 1182 - 부분집합 (자바) (0) | 2017.12.05 |
[BOJ] 백준 1026 - 보물 (자바) (0) | 2017.12.05 |
[BOJ] 백준 7785 - 회사에 있는 사람 (자바) (1) | 2017.11.20 |