[BaekJoon] 10953๋ฒˆ - A+B - 6 (java)

1. ๋ฌธ์ œ

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

- ์กฐ๊ฑด

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


- ๋ฌธ์ œ

๋‘ ์ •์ˆ˜ A์™€ B๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋‹ค์Œ, A+B๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

- ์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ ์ค„์— A์™€ B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. A์™€ B๋Š” ์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ๋‹ค. (0 < A, B < 10)

- ์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค A+B๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

- ์˜ˆ์ œ

ย ย ์ž…๋ ฅย ย  ย ย  ์ถœ๋ ฅย ย 
5
1,1
2,3
3,4
9,8
5,2
2
5
7
17
7





2. ํ’€์ด

๋ฐ˜๋ณต๋ฌธ for๋ฅผ ์‚ฌ์šฉํ•ด ์ฒซ ์ค„์— ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’๋งŒํผ A + B๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

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




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

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



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

import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {
	public static void main(String args[]) {
 
		Scanner sc = new Scanner(System.in);
        
		int T = sc.nextInt();
 
		for (int i = 1; i <= T; i++) {
            StringTokenizer st = new StringTokenizer(sc.next(),",");
			
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
 
			System.out.println(a + b);
		}
		sc.close();
	}
}

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

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

sc.next() ๋Š” โ€œ โ€œ(๊ณต๋ฐฑ) ์ „๊นŒ์ง€ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค.

StringTokenizer ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด โ€œ,โ€ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๊ตฌ๋ถ„ํ•˜๊ณ , nextToken()๋ฅผ ์‚ฌ์šฉํ•ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์ž…๋ ฅ๊ฐ’๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.

Integer.parseInt()์„ ์‚ฌ์šฉํ•ด Stringํ˜•์„ intํ˜•์œผ๋กœ ๋ณ€ํ™˜์‹œ์ผœ์ค€๋‹ค.



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

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




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

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



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



โ‘  BufferedReader + System.out.println()

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.IOException;
 
public class Main {
	public static void main(String args[]) throws IOException {
 
		BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());
 
		for (int i = 1; i <= T; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(),",");
			
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
 
			System.out.println(a + b);
		}
		br.close();
	}
 
}

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





โ‘ก BufferedReader + BufferedWriter

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int T = Integer.parseInt(br.readLine());
        
        for (int i = 1; i <= T; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(),",");
			
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
 
			bw.write(a + b + "\n");
		}
        bw.flush();
        bw.close();
    }
}

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

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



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

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





โ‘ข 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 T = Integer.parseInt(br.readLine());
        
        for (int i = 1; i <= T; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(),",");
			
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
 
			sb.append(a + b);
            sb.append("\n");
		}
        System.out.println(sb);
    }
}

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

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





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