10
19

https://www.acmicpc.net/problem/10989

 

10989๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3

์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 10,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net

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 size = Integer.parseInt(br.readLine());
        int[] buffer = new int[10001];
        for(int i=0; i<size; i++){
            int tmp = Integer.parseInt(br.readLine());
            buffer[tmp]++;
        }
        int idx = 1;
        while(size>=0){
            if(idx!=0){
                for(int i=0; i<buffer[idx]; i++){
                    bw.write(idx+"\n");
                }
                idx++;
                size--;
            }
        }

        bw.flush();
        bw.close();
    }
}

์˜ค๋‹ต๋…ธํŠธ(ํ‘ธ๋Š” ๋™์•ˆ ์‚ฌ๊ณ ๊ณผ์ • ๋ฐ ๊ฐœ์„ ์ )

๋“ค์–ด์˜ค๋Š” ์ˆ˜๊ฐ€ 10000๊นŒ์ง€๋‹ˆ๊นŒ, 1~10000์ด ๋“ค์–ด๊ฐˆ ๋ฐฐ์—ด์„ ๋ฏธ๋ฆฌ ์งœ์„œ ์ผ์ข…์˜ ๊ณ„์ˆ˜์ •๋ ฌ์„ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ–ˆ๋‹ค.

์•„์ด๋””์–ด๋Š” ์ž˜ ์ง ๊ฒƒ๊ฐ™์€๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๊ณ„์† ๋‚˜๋ฒ„๋ ธ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  BufferedWriter๋ฅผ ์‚ฌ์šฉํ•˜๋‹ˆ๊นŒ ๋ฌด์Šจ ์ด์œ ์ธ์ง€ ๋ชฐ๋ผ๋„ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๊ณ„์† ๋‚ฌ๋‹ค. ์œ„ ์˜ค๋‹ต์ฝ”๋“œ์—๋Š” ์—†์ง€๋งŒ StringBuilder๋กœ ์ž‘์„ฑํ•˜๋‹ˆ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๋Š” ์•„๋‹ˆ์—ˆ๊ณ  ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


์ •๋‹ต์ฝ”๋“œ

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 size = Integer.parseInt(br.readLine());
        int[] buffer = new int[10001];
        for(int i=0; i<size; i++){
            int tmp = Integer.parseInt(br.readLine());
            buffer[tmp]++;
        }

        StringBuilder sb = new StringBuilder();
        for(int j=1; j<=10000; j++){
            while(buffer[j]-- >0){
                sb.append(j).append("\n");
            }
        }
        System.out.println(sb);
    }
}

๋ฌธ์ œ๋Š” ์ถœ๋ ฅํ•˜๋Š” ๋ถ€๋ถ„์„ ์–ด๋–ป๊ฒŒ ์žก๋ƒ์˜€๋‹ค. ์ถœ๋ ฅํ•  ๊ณ„์ˆ˜ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋งŒํผ ๋Œ๊ฒŒ ํ•˜๊ณ , ๊ณ„์ˆ˜ ๋ฐฐ์—ด์˜ ์›์†Œ๊ฐ’์„ ์ค„์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์ถœ๋ ฅํ–ˆ๋‹ค.

StringBuilder๋ฅผ ์“ธ ๋•Œ ์ฃผ์˜ํ•  ์ ์ด ์žˆ๋‹ค.

sb.append(j).append("\n");
sb.append(j+"\n");

์ด ๋‘ ์ค„์˜ ์ฝ”๋“œ๊ฐ€ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด, ์–ธ์  ๊ฐ€ ์‹œ๊ฐ„์ดˆ๊ณผ๋ฅผ ๋ณด๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

+ ๊ณผ์ •์—์„œ String ๊ฐ์ฒด๊ฐ€ ๋งค๋ฒˆ ์ƒ์„ฑ๋˜๋Š” ๊ฑธ ๋ง‰๊ธฐ์œ„ํ•ด append๋ฅผ ์“ฐ๋Š”๊ฑด๋ฐ append ์•ˆ์— ๋„ฃ์–ด๋ฒ„๋ฆฌ๋ฉด ๊ทธ ํšจ๊ณผ๋ฅผ ๋ฒ„๋ฆฌ๋Š” ์ง“์ด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœํ–‰์ด ํ•„์š”ํ•˜๋ฉด ๊ฐœํ–‰๋ฌธ์ž๋„ append๋กœ ๋„ฃ์–ด์ค˜์•ผํ•œ๋‹ค!

 

"๋Œ“๊ธ€, ๊ณต๊ฐ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์”ฉ ๋ˆ„๋ฅด๊ณ  ๊ฐ€์ฃผ์‹œ๋ฉด ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค"

 

๋ฐ˜์‘ํ˜•
COMMENT