[Java] ์ฝ”ํ…Œ์—์„œ ํšจ์œจ์ ์ธ ์ž…์ถœ๋ ฅ: BuffereredReader/Writer, StringTokenizer, StringBuilder + ๋ฐฑ์ค€ 15552

2025. 11. 23. 17:02ยทโ˜•Java/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

`Scanner`์™€ `System.out.println` ๋Œ€์‹  ๋น ๋ฅด๊ฒŒ ์ž…๋ ฅ/์ถœ๋ ฅ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๊ฒŒ ๋œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ์†๋„๊ฐ€ ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•  ๋•Œ ์œ ๋ฆฌํ•œ BufferReader/Writer ํด๋ž˜์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

๐Ÿ”— ๋ฐฑ์ค€ 15552๋ฒˆ

๋ณธ๊ฒฉ์ ์œผ๋กœ for๋ฌธ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์ „์— ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์ด ์žˆ๋‹ค. ์ž…์ถœ๋ ฅ ๋ฐฉ์‹์ด ๋А๋ฆฌ๋ฉด ์—ฌ๋Ÿฌ ์ค„์„ ์ž…๋ ฅ๋ฐ›๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•  ๋•Œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.

C++์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  cin/cout์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, cin.tie(NULL)๊ณผ sync_with_stdio(false)๋ฅผ ๋‘˜ ๋‹ค ์ ์šฉํ•ด ์ฃผ๊ณ , endl ๋Œ€์‹  ๊ฐœํ–‰๋ฌธ์ž(\n)๋ฅผ ์“ฐ์ž. ๋‹จ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋” ์ด์ƒ scanf/printf/puts/getchar/putchar ๋“ฑ C์˜ ์ž…์ถœ๋ ฅ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

Java๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, Scanner์™€ System.out.println ๋Œ€์‹  BufferedReader์™€ BufferedWriter๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. BufferedWriter.flush๋Š” ๋งจ ๋งˆ์ง€๋ง‰์— ํ•œ ๋ฒˆ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

Python์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, input ๋Œ€์‹  sys.stdin.readline์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, ์ด๋•Œ๋Š” ๋งจ ๋์˜ ๊ฐœํ–‰๋ฌธ์ž๊นŒ์ง€ ๊ฐ™์ด ์ž…๋ ฅ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ .rstrip()์„ ์ถ”๊ฐ€๋กœ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๋˜ํ•œ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์€ ๋ณ„๊ฐœ์ด๋ฏ€๋กœ, ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ์ „๋ถ€ ์ž…๋ ฅ๋ฐ›์•„์„œ ์ €์žฅํ•œ ๋’ค ์ „๋ถ€ ์ถœ๋ ฅํ•  ํ•„์š”๋Š” ์—†๋‹ค. ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ํ•˜๋‚˜ ๋ฐ›์€ ๋’ค ํ•˜๋‚˜ ์ถœ๋ ฅํ•ด๋„ ๋œ๋‹ค.

 

๋ฌธ์ œ ๋งํฌ


Buffer

Java์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ์ถœ๋ ฅ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์„ ๊ฒ๋‹ˆ๋‹ค.

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println(num);

๋ฒ„ํผ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ž๋ฐ”์—์„œ `System.in`๊ณผ `System.out.print`๋ณด๋‹ค ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์ž…๋ ฅ์„ ๋ฐ›๊ฑฐ๋‚˜, ์ถœ๋ ฅ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ฒ„ํผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ

๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ•˜๋Š” ๋Œ€์‹  ํ•œ ๋ฒˆ์— ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด,

ํŽธ์˜์ ์—์„œ ์†๋‹˜์ด ์‚ด ๋ฌผ๊ฑด์„ ํ•˜๋‚˜์”ฉ ์นด์šดํ„ฐ์— ์˜ฌ๋ ค์„œ ๊ณ„์‚ฐํ•˜๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š”๋ฐ

๋ฐ”๊ตฌ๋‹ˆ์— ๋ฌผ๊ฑด์„ ๋ชจ์•„์„œ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•˜๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ๋ฒ„ํผ ์—ญํ• ์ž…๋‹ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์กฐ๊ธˆ์”ฉ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€์‹ , ์ผ๋‹จ ๋ฒ„ํผ์— ๋‹ด์•„๋‘์—ˆ๋‹ค๊ฐ€ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.


BuffereredReader

`Scanner`๋Š” ์ž…๋ ฅ์„ ๋ฐ›์„ ๋•Œ ์ˆซ์ž ํ•˜๋‚˜, ๋ฌธ์ž์—ด ํ•˜๋‚˜ ์ด๋ ‡๊ฒŒ ์ฝ์„ ๋•Œ๋งˆ๋‹ค ์‹œ์Šคํ…œ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

`BufferedReader`๋Š” ์ž…๋ ฅ์„ ํ•œ ์ค„ ํ†ต์งธ๋กœ ์ฝ์–ด ๋ฒ„ํผ์— ์ €์žฅํ•œ ํ›„ ์›ํ•˜๋Š” ๋งŒํผ ์ž˜๋ผ์„œ ์“ฐ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();   // ํ•œ ์ค„ ํ†ต์งธ๋กœ ์ฝ์Œ
int n = Integer.parseInt(s);

 

BufferedWriter

`System.out.println`์€ ์ถœ๋ ฅํ•  ๋•Œ๋งˆ๋‹ค ์‹œ์Šคํ…œ์— ์ถœ๋ ฅํ•˜๊ฒ ๋‹ค๊ณ  ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

`BufferedWriter`์€ ์ถœ๋ ฅํ•  ๋‚ด์šฉ์„ ๋ฒ„ํผ์— ์Œ“์•„๋‘์—ˆ๋‹ค๊ฐ€ `flush()`๋‚˜ close()`๋ผ๋Š” ํŠน์ •ํ•œ ๋ช…๋ น์œผ๋กœ ํ•œ ๋ฒˆ์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

bw.write("Hello ");
bw.write("My name is ");
bw.write("Soyoung");

bw.flush();

 

์ž…์ถœ๋ ฅ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์„ ๋•Œ๋Š” `Scanner`๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฒ„ํผ๋ฅผ ์ด์šฉํ•ด ์ค„ ๋‹จ์œ„๋กœ ์ฝ์–ด์„œ ํŒŒ์‹ฑํ•˜๋Š” ํŽธ์ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.


์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ

๊ธฐ๋ณธ

ํ•ด๋‹น ํด๋ž˜์Šค๋Š” java.io ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

= import java.io.*;

 

BufferedReader

์ฃผ๋กœ `readLine()`์„ ์ด์šฉํ•ด ํ•œ ์ค„ ์ „์ฒด๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

Stringํ˜•์œผ๋กœ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `Integer.parseInt()`, Long.parseLong()` ๋“ฑ์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String line = br.readLine(); // ํ•œ ์ค„ ์ „์ฒด ์ฝ์Œ
int a = Integer.parseInt(line);	// String -> ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ณ€ํ™˜

 

์ฐธ๊ณ ๋กœ `readLine()` ๋ฉ”์†Œ๋“œ์—์„œ๋Š” IOExceptino์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด

try-catch๋ฌธ์œผ๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ฑฐ๋‚˜ throws IOException์„ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

BufferedWriter

`write()`๋ฅผ ์ด์šฉํ•ด ๋ฒ„ํผ์— ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ์ค„๋ฐ”๊ฟˆ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด `newLine()` ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ๋“ค์€ ๋ชจ๋‘ Stringํ˜•์œผ๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

`flush()`๋ฅผ ํ•˜์—ฌ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์„์ ์œผ๋กœ๋Š” ์‚ฌ์šฉ์ด ๋๋‚˜๋ฉด `close()`๋กœ ๋” ์ด์ƒ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค๊ณ  ํ•ด์•ผํ•˜์ง€๋งŒ

์ผ๋ฐ˜์ ์ธ ์ฝ”ํ…Œ์—์„œ๋Š” `flush()`๋งŒ ํ•ด๋„ ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค.

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

bw.write("Hello");	// ์ถœ๋ ฅ ๋‚ด์šฉ
bw.newLine();	// ์ค„๋ฐ”๊ฟˆ
bw.write(String.valueOf(123));	// ์ˆซ์ž๋„ ํฌํ•จ
bw.flush();	// ์ถœ๋ ฅ

 

์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ `bw.write(123)` ์ด๋Ÿฐ ์‹์œผ๋กœ ํ•˜๋ฉด ๋ฌธ์ž์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์›ํ•˜๋Š” ์ˆ˜๋กœ ์ถœ๋ ฅํ•˜๋ ค๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์‹ค์ „

StringTokenizer ํ™œ์šฉํ•˜๊ธฐ

ํ•œ ์ค„์„ ์ž…๋ ฅ๋ฐ›๋Š” ์ƒํ™ฉ๋ณด๋‹ค๋Š”

๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์ •์ˆ˜ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ฑฐ๋‚˜, N์ค„์„ ์ž…๋ ฅ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ฑฐ๋‚˜ ๋“ฑ๋“ฑ

์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜๊ฒŒ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด์„ ์ชผ๊ฐœ๋Š” ์ž‘์—…์ด ํ•„์š”ํ•ด์ง‘๋‹ˆ๋‹ค.

์ด๋•Œ `StringTokenizer` ํด๋ž˜์Šค๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

StringTokenizer ํด๋ž˜์Šค๋Š” ๋ฌธ์ž์—ด์„ ์ชผ๊ฐœ 'ํ† ํฐ'์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

`java.uil` ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

  • `StringTokenizer st = new StringTokenizer(๋ฌธ์ž์—ด)`
    • ๋„์–ด์“ฐ๊ธฐ(๊ณต๋ฐฑ) ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ถ„๋ฆฌ
  • `StringTokenizer st = new StringTokenizer(๋ฌธ์ž์—ด, ๊ตฌ๋ถ„์ž)`
    • ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ถ„๋ฆฌ(๊ตฌ๋ถ„์ž๋Š” ์ž˜๋ฆผ)
  • `StringTokenizer st = new StringTokenzier(๋ฌธ์ž์—ด, ๊ตฌ๋ถ„์ž, true/false)`
    • ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ถ„๋ฆฌํ•  ๋•Œ ๊ตฌ๋ถ„์ž๋„ ํ† ํฐ์— ํฌํ•จํ•˜๋ฉด true, ํ† ํฐ์— ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉด false

์ด๋ ‡๊ฒŒ StringTokenizer๋ฅผ ์„ ์–ธํ•˜๊ณ  `nextToken()` ๋ฉ”์†Œ๋“œ๋กœ ํ† ํฐ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()); // ํ•œ ์ค„ ์ฝ์–ด์„œ ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ฒ ๋‹ค.

int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());

 

StringBuilder ํ™œ์šฉํ•˜๊ธฐ

StringBuilder๋Š” ๋ฌธ์ž์—ด์„ ๊ณ„์† ๋”ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€๋ณ€(mutable) ๋ฌธ์ž์—ด ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ Stringํ˜•์€ ๋ถˆ๋ณ€(immutable)์ด๋ผ์„œ ๋ฌธ์ž์—ด์„ ๋”ํ•  ๋•Œ๋งˆ๋‹ค

์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๊ณ„์† ๋งŒ๋“ค์–ด๋ƒ…๋‹ˆ๋‹ค.

String s = "";
s += "A";
s += "B";

 

์—ฌ๊ธฐ์„œ s๊ฐ€ ๊ฒฐ๊ณผ์ ์œผ๋กœ "AB"๊ฐ€ ๋˜๊ธด ํ•˜์ง€๋งŒ ๊ทธ ๊ณผ์ •์—์„œ "", "A", "AB" ์ด๋Ÿฐ ๋ฌธ์ž์—ด์ด ๊ณ„์† ์ƒˆ๋กœ ์ƒ์„ฑ๋˜์„œ

๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„๋˜๊ณ  ์†๋„๊ฐ€ ๋น„๊ต์  ๋А๋ฆฝ๋‹ˆ๋‹ค.

 

๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ถ™์ผ ๋•Œ๋Š” ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๋ณต์‚ฌ/์ƒ์„ฑ์„ ๋ฐฉ์ง€ํ•˜๋Š” StringBuilder๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • `append()`๋กœ ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ 
  • `toString()`์œผ๋กœ ์ผ๋ฐ˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
StringBuilder sb = new StringBuilder();

sb.append("A").append("B").append(123).append('\n');

System.out.println(sb.toString());

 

BufferedWriter์™€ ํ•จ๊ป˜ ์“ฐ๋ฉด ์ด๋ ‡๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();

for (int i = 0; i < N; i++) {
    sb.append(i).append('\n');
}

bw.write(sb.toString());
bw.flush();

๊ทธ๋ ‡๊ฒŒ ํ‘ผ ๋ฐฑ์ค€ 15552๋ฒˆ์˜ ํ’€์ด๋Š”

import java.io.*;
import java.util.*;

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 testcase = Integer.parseInt(br.readLine());
        
        for(int i=0; i<testcase; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            bw.write(String.valueOf(a+b));
            bw.newLine();
        }
        
        bw.flush();
    }
}

'โ˜•Java > ์ฝ”๋”ฉํ…Œ์ŠคํŠธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP, Dynamic Programming) / ๋ฐฑ์ค€ 12865๋ฒˆ / ๋ฐฐ๋‚ญ ๋ฌธ์ œ  (0) 2025.11.13
[Java] ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ๋ฐฑ์ค€ 1253๋ฒˆ  (0) 2025.11.07
[JAVA] ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ (๋ฐฑ์ค€ 12891๋ฒˆ)  (0) 2025.05.22
[JAVA] ํˆฌ ํฌ์ธํ„ฐ (๋ฐฑ์ค€ 2018๋ฒˆ, ๋ฐฑ์ค€ 1940๋ฒˆ)  (1) 2025.05.18
[JAVA] ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ (๋ฐฑ์ค€ 11659๋ฒˆ, ๋ฐฑ์ค€ 2042๋ฒˆ)  (0) 2025.05.17
'โ˜•Java/์ฝ”๋”ฉํ…Œ์ŠคํŠธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java] ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP, Dynamic Programming) / ๋ฐฑ์ค€ 12865๋ฒˆ / ๋ฐฐ๋‚ญ ๋ฌธ์ œ
  • [Java] ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ๋ฐฑ์ค€ 1253๋ฒˆ
  • [JAVA] ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ (๋ฐฑ์ค€ 12891๋ฒˆ)
  • [JAVA] ํˆฌ ํฌ์ธํ„ฐ (๋ฐฑ์ค€ 2018๋ฒˆ, ๋ฐฑ์ค€ 1940๋ฒˆ)
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐ŸŒฟSpring (20)
      • โ˜•Java (7)
        • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (7)
      • โš™๏ธ CS (26)
        • ๐Ÿ›œ ๋„คํŠธ์›Œํฌ (5)
        • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
        • ๐Ÿ–ฒ๏ธ์šด์˜์ฒด์ œ (9)
        • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (4)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
        • Docker (4)
        • AWS (0)
      • ๐Ÿ“ฐ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (12)
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (1)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์„œ๋ฒ„
    docker
    GIT
    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    Spring Security
    ์ž๋ฃŒ๊ตฌ์กฐ
    ์šด์˜์ฒด์ œ
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๋ฐฐํฌ
    Java
    ๊ฐœ๋ฐœ
    ๋„คํŠธ์›Œํฌ
    Spring
    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ๊ธฐ์ˆ  ๋ฉด์ ‘
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
[Java] ์ฝ”ํ…Œ์—์„œ ํšจ์œจ์ ์ธ ์ž…์ถœ๋ ฅ: BuffereredReader/Writer, StringTokenizer, StringBuilder + ๋ฐฑ์ค€ 15552
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”