๋‚ด ์ด์•ผ๊ธฐ(TMI)

[TIL] ์ฝ”๋“œ ํšจ์œจ์„ฑ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ(๋ฐฑ์ค€ ๊ณต๋ถ€..)

newkr 2022. 4. 5. 02:38
728x90

๐Ÿ“ ๋ฐฑ์ค€ ๊ณต๋ถ€

 ์š”์ฆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ผ ํ•ด๋ด์•ผ ์ง€๊ธˆ ๋‚ด ๋‹จ๊ณ„์—์„œ๋Š” ์•„์ฃผ.. ์‰ฌ์šด ๋ฌธ์ œ๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ๋Œ€๋ถ€๋ถ„์ด๊ณ , ์•„์ง์€ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•จ์ด ๋” ํฌ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ์˜ค๋Š˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐฐ์šฐ๋Š” ์˜๋ฏธ๋ฅผ ์•ฝ๊ฐ„ ๋А๋ผ๋Š” ๊ฒƒ ๊ฐ™์•„ ์ด๋ ‡๊ฒŒ TIL์„ ์ ๋Š”๋‹ค.

ํšจ์œจ์ ์ธ ์ฝ”๋“œ. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ฐจ์ด

๊ฐ€๋ฒผ์šด ์—ฐ์‚ฐ์‹ ํ’€์ด(2742๋ฒˆ ๋ฌธ์ œ)

 ์œ„ ์‚ฌ์ง„์„ ๋ณด๋ฉด ๊ฐ™์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต์ด ๋ฉ”๋ชจ๋ฆฌ์™€ ์‹œ๊ฐ„์  ์ฐจ์ด๊ฐ€ ๊ทน๋ช…ํ•˜๊ฒŒ ๋ณด์ธ๋‹ค. ๋‘ ์ฝ”๋“œ์˜ ์ฐจ์ด๋Š” ๊ณ ์ž‘ ์ถœ๋ ฅ์— ์žˆ์–ด์„œ bufferedwriter๋ฅผ ์ผ๋А๋ƒ system.print.ln์„ ์‚ฌ์šฉํ–ˆ๋А๋ƒ๋‹ค. 
 ์ถœ๋ ฅ ๋ฐฉ์‹์„ ๋ฐ”๊ฟ”์ฃผ๋‹ˆ ํ›จ์”ฌ ํšจ์œจ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ์ด ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๋Š” ๊ฑฐ๋‹ค. ํ˜„์กดํ•˜๋Š” ์ฝ”๋“œ ์†์—์„œ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ์‹์„ ์ฐพ๊ธฐ ์œ„ํ•ด. ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ์‹ค์ƒํ™œ์—์„œ ํ•„์š”ํ•œ ๊ธฐ์ˆ ์„ ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ณ , ๋” ๋‹ค์–‘ํ•œ ๋‚ด์šฉ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ? bufferedwriter์™€ system.print.ln์ด ์ฐจ์ด๊ฐ€ ๋‚˜๋Š” ๊ฑธ๊นŒ?
๋ฒ„ํผ(Buffer) ๋ž€?

 ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ '๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„๋‘˜ ์ˆ˜ ์žˆ๋Š” ํ'๋กœ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋‹ค. ์ž…๋ ฅ ์‹œ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ์€ ํšจ์œจ์ด ๋‚ฎ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ธ ๋ฒ„ํผ์— ๋ชจ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•˜๋ฉด ํšจ์œจ์ด ์ƒ์Šนํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์ผ๊ด„์ฒ˜๋ฆฌ๋Šฅ๋ ฅ์„ ์ƒ๊ฐํ•˜๋ฉด ์‰ฌ์šด๋ฐ, ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ๊ณ„๋ž€์„ 1๊ฐœ์”ฉ ์ž๊พธ ๋ณด๋‚ด๋ฉด์„œ ์ •๋ฆฌํ•˜๋ผ๋Š” ๊ฒƒ๋ณด๋‹ค ๊ณ„๋ž€ ํ•œ ํŒ์„ ๋ณด๋‚ด๋ฉด์„œ ์ •๋ฆฌํ•˜๋ผ๋Š” ์ƒํ™ฉ์„ ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.
import java.awt.print.PrinterGraphics;
import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {

//        Scanner sc = new Scanner(System.in); // ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ (๋‹จ, Scanner ๋ณด๋‹ค ํšจ์œจ์ )
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int n = Integer.parseInt(st.nextToken());

        for(int i = 0; i < n; i++) {
            bw.write(String.valueOf(n - i));
            bw.newLine();
        }
        bw.flush();
        bw.close();
    }
}
๋‚ด๊ฐ€ ์ ์€ ๋ฐฑ์ค€ 2742๋ฒˆ ๋ฌธ์ œํ’€์ด๋‹ค. ์ดˆ์‹ฌ์ž๋ผ ๊ทธ๋ ‡๊ฒŒ ์ž˜ํ•œ ์ฝ”๋“œ๋Š” ์•„๋‹ˆ์ง€๋งŒ, ์ž๋ฐ”์—์„œ ๋Œ€ํ‘œ์ ์ธ ์ž…/์ถœ๋ ฅ ๋ฉ”์†Œ๋“œ์ธ Scanner/system.print.ln ๋Œ€์‹  ๋ฒ„ํผ ๊ด€๋ จ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

๐Ÿ’ช ๋” ๊ณต๋ถ€ํ•˜์ž!

 ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด ํ•  ์ˆ˜๋ก ์ฝ”๋“œ์˜ ํšจ์œจ์„ฑ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„ ์ข‹๋‹ค. ํ”ํžˆ ๋งํ•˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„, ๊ณต๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด๋ผ์„œ ๊ทธ๋Ÿฐ๊ฐ€ ์‹ถ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ๊ณต๋ถ€๋ฅผ ๊พธ์ค€ํžˆ ํ•˜๋ฉด ๋” ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋‚ ์ด ์˜ค์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

728x90