[BaekJoon] 9316๋ฒˆ - Hello Judge (java)

1. ๋ฌธ์ œ

๐Ÿ‘‰ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ

- ์กฐ๊ฑด

์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ
1์ดˆ 128MB


- ๋ฌธ์ œ

๋‹น์‹ ์€ N๊ฐœ์˜ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋“ค์—๊ฒŒ ๋ฐ˜๋“œ์‹œ ์ธ์‚ฌ๋ฅผ ํ•ด์•ผ ์ด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ
"Hello World, Judge i!"
๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ผ. ์—ฌ๊ธฐ์„œ i๋Š” ์ค„์˜ ๋ฒˆํ˜ธ์ด๋‹ค.

- ์ž…๋ ฅ

N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 200)


- ์ถœ๋ ฅ

ํ•œ ์ค„์— ํ•˜๋‚˜์˜ Hello World, Judge i! ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

- ์˜ˆ์ œ

ย ย ์ž…๋ ฅย ย  ย ย  ์ถœ๋ ฅย ย 
3 Hello World, Judge 1!
Hello World, Judge 2!
Hello World, Judge 3!





2. ํ’€์ด

for ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด N ๋ฒˆ๋งŒํผ โ€œHello World, Judge i!โ€ ์„ ์ถœ๋ ฅํ•œ๋‹ค.

for (์ดˆ๊ธฐ์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
    ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ ์ž‘์„ฑ;
}




2๊ฐœ์˜ ์ž…๋ ฅ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

  1. Scanner ํด๋ž˜์Šค
  2. BufferedReader ํด๋ž˜์Šค



2-1. Scanner ํด๋ž˜์Šค

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int N = sc.nextInt();

        for(int i=1;i<=N;i++){
            System.out.println("Hello World, Judge " + i + "!");
        }
    }
}

์œ„์™€๊ฐ™์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, Scanner(System.in) ์—์„œ System.in ์€ ์ž…๋ ฅํ•œ ๊ฐ’์„ Byte ๋‹จ์œ„๋กœ ์ฝ๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค.

intํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•ด nextInt() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.



[์—ฌ๊ธฐ์„œ ์ž ๊น!]

Scanner์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ๊ณ ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”




2-2. BufferedReader ํด๋ž˜์Šค ์‚ฌ์šฉ

3๊ฐ€์ง€ ์ถœ๋ ฅ ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๊ณ  ๋น„๊ตํ•ด๋ณด์ž.

ย ย ย ย  โ‘  StringBuilder
ย ย ย ย  โ‘ก BufferedWriter
ย ย ย ย  โ‘ข System.out.println()



โ‘  BufferedReader + StringBuilder

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

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());

        for(int i=1;i<=N;i++){
            sb.append("Hello World, Judge ").append(i).append("!");
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

Integer.parseInt()์„ ์‚ฌ์šฉํ•ด readLine()์œผ๋กœ ์ฝ์–ด์˜จ Stringํ˜• ๋ฐ์ดํ„ฐ๋ฅผ intํ˜•์œผ๋กœ ๋ณ€ํ™˜์‹œ์ผœ์ค€๋‹ค.

StringBuilder ํด๋ž˜์Šค๋Š” ๋ฌธ์ž์—ด์„ ๋™์ ์œผ๋กœ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค๋กœ, append() ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.

append() ๋ฅผ ์œ„์™€ ๊ฐ™์ด ๋‚˜๋ˆ ์„œ ์“ฐ๋ฉด ํƒ€์ž… ๋ณ€ํ™˜๊ณผ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ด ์ถ”๊ฐ€์ ์œผ๋กœ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  StringBuilder์— ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‹ค ๋” ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๋‹ค.





โ‘ก BufferedReader + BufferedWriter

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

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 N = Integer.parseInt(br.readLine());

        for(int i=1;i<=N;i++){
            bw.write("Hello World, Judge " + i + "!" + "\n");
        }
        bw.flush();
        bw.close();
    }
}

BufferedWriter ํด๋ž˜์Šค์˜ write() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ถ€ ๋ฒ„ํผ์— ์ €์žฅํ•˜๊ณ , flush() ๋ฉ”์†Œ๋“œ ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฒ„ํผ๋ฅผ ๋น„์šฐ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

BufferedWriter ํด๋ž˜์Šค์˜ write() ๋ฉ”์†Œ๋“œ๋Š” ๋‹จ๋…์œผ๋กœ int ํ˜• ๊ฐ’๋งŒ ๋„ฃ์„ ๊ฒฝ์šฐ ์•„์Šคํ‚ค ์ฝ”๋“œ๊ฐ’์œผ๋กœ ์ธ์‹๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฌธ์ž๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž์—ด๊ณผ int ํ˜•์„ ํ•จ๊ป˜ ๋„ฃ์–ด์ค˜์•ผ int ๊ฐ’์„ ์ œ๋Œ€๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.



[์—ฌ๊ธฐ์„œ ์ž ๊น!]

BufferedWriter ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๋” ์•Œ์•„๋ณด๊ณ  ์‹ถ์œผ๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋œ๋‹ค.





โ‘ข BufferedReader + System.out.println()

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int N = Integer.parseInt(br.readLine());

        for(int i=1;i<=N;i++){
            System.out.println("Hello World, Judge " + i + "!");
        }
    }
}





3. ์„ฑ๋Šฅ ๋น„๊ต

image

์œ„์—์„œ ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ

BufferedReader + StringBuilder
BufferedReader + BufferedWriter
BufferedReader + System.out.println()
Scanner

์œ„์™€๊ฐ™์ด ์ž…๋ ฅ ๋ฉ”์†Œ๋“œ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ž…๋ ฅ์˜ ๊ฒฝ์šฐ ํ™•์‹คํžˆ Scanner ๋ณด๋‹ค๋Š” BufferedReader ๊ฐ€ ๋น ๋ฅธ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ถœ๋ ฅ์˜ ๊ฒฝ์šฐ System.out.println() ๊ฐ€ ์ œ์ผ ๋Š๋ฆฌ๋‹ค.
BufferedWriter ๋ณด๋‹ค๋Š” StringBuilder ๊ฐ€ ๋น ๋ฅธ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
(๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ ์–‘์ด ์ปค์ง€๋ฉด ์ปค์งˆ ์ˆ˜๋ก BufferedWriter ๊ฐ€ ๋” ๋น ๋ฅด๋‹ค.)

BufferedWriter๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ I/O ์ž‘์—…์œผ๋กœ ์ธํ•ด ๋น„๊ต์  ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜๋ฉด์— StringBuilder๋Š” ๋ฌธ์ž์—ด ์กฐ์ž‘์— ์ตœ์ ํ™”๋œ ํด๋ž˜์Šค๋กœ, ๋ฌธ์ž์—ด ์—ฐ์‚ฐ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๋น ๋ฅผ ์ˆ˜ ์žˆ๋‹ค.





๊ด€๋ จ ํŽ˜์ด์ง€

Categories:

Updated:

Leave a comment