백준알고리즘

백준알고리즘:p10989 수 정렬하기3

socialcomputer 2021. 3. 17. 23:18
반응형

분류: 정렬

 

문제

 

 

코드

//백준알고리즘 제출시 클래스 이름은 Main으로 바꿔야 됨 
package sort;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class p10989 {
//미리 10000자리를 만들어 놓고 그 자리에 1씩 증가해준다.
	public static void main(String[] args) {
		try(	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
				BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));){
			int[] arr = new int[10000];
			int n = Integer.parseInt(br.readLine());
			for(int i=0; i<n; i++) {
				arr[Integer.parseInt(br.readLine())-1] +=1; //1부터 10000까지의 숫자(배열은 0~9999)
			}
			int count =0; 
			for(int j=0; j<10000; j++) {
				if(arr[j] != 0) {
					for(int k=0; k<arr[j]; k++) {	
						bw.write(String.valueOf(j+1)+"\n");	
						count++;
					}
				}
				if(count>n) break;
			}bw.flush();
			
		}catch (Exception e) { e.printStackTrace();	}
	}

}

▶처음에 합병정렬 그대로 제출했는데 틀렸다길래 찾아보니,, 최대 수 크기의 배열을 만들어 놓고 그 배열 칸에 1씩 카운트 하는 방식으로 풀어야 한다고 한다... 언제 힌트없이 풀수 있을까ㅠ

그래서 10000크기의 배열을 선언.

 

 


채점결과

ㅋㅋㅋㅋㅋ아.. if(count<n)인데 n대신 10을 써서 계속 틀렸...

 

링크 www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

반응형