Jaeyoung Kim
나의 개발 공부 일지
Jaeyoung Kim
전체 방문자
오늘
어제
  • 분류 전체보기 (77)
    • WIL👨‍🏫 (16)
    • 🤖Algorithm (29)
    • 🖥CS (20)
      • 기술면접대비🔎 (10)
    • ✍️개발로그 (10)

블로그 메뉴

  • 홈
  • 방명록
  • 글쓰기
  • 설정

공지사항

인기 글

태그

  • transaction
  • 백준
  • WIL
  • API
  • 데이터자료구조
  • 프로그래머스
  • 개발로그
  • sql
  • til
  • querydsl
  • N-gram parser
  • 트랜잭션
  • Java
  • SQLD
  • rest
  • 자바
  • 백준2920
  • 회고록
  • 항해99
  • HTTP

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
Jaeyoung Kim

나의 개발 공부 일지

[백준] 2741 N찍기 Java
🤖Algorithm

[백준] 2741 N찍기 Java

2022. 8. 4. 11:31
728x90

N찍기


문제

자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.


출력

첫째 줄부터 N번째 줄 까지 차례대로 출력한다.


예제 입출력


문제풀이

1. Scanner + sout

이번 문제는 풀이를 할 것 없이 매우 간단한 문제였기에 기본적으로 풀 수 있는 Scanner와 sout을 이용한 방법,

Scanner 대신 BufferedReader를 사용한 방법 그리고 마지막으로 sout 대신 BufferedWriter까지 사용한 방법

세 가지로 문제를 풀어보았다.

//Scanner 클래스와 sout으로 작성

import java.util.Scanner;

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

        int num = scanner.nextInt();

        for(int i = 0; i < num; i++){
            System.out.println(i+1);
        }
    }
}

Scanner와 sout만으로도 문제해결이 가능하였으나 이후 진행할 다른 방법들에 비해 가장 긴 시간이 걸린다.

 

2. BufferedRead + sout

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

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

        int num = Integer.parseInt(br.readLine());

        for(int i = 0; i < num; i++){
            System.out.println(i+1);
        }
    }
}​

 

Scanner 대신 BufferedReader를 사용하였다. 시간이 소폭 감소한 것이 확인 가능하였다.


Solution.java

3. BufferedRead + BufferedWirter

import java.io.*;

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

        for(int i = 0; i < num; i++){
            bw.write(i+1 +"\n");
        }
        br.close();

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

마지막으로 sout까지 BufferedWriter로 대체해보았다. 아직까지 익숙하지 않아 BufferedReader를 close하지않거나

BufferedWriter를 flush 및 close 해주지 않아 1차례 오류가 발생하였으나 이전 작성해둔 코드를 바탕으로 크게

어렵지 않게 구현되었다. 시간이 대폭 감소된 것도 확인 가능하였다.

앞으로는 의식적으로 Scanner 및 sout 사용을 자제하고 BufferedReader와 BufferedWriter를 사용하도록 해야겠다.

728x90

'🤖Algorithm' 카테고리의 다른 글

[백준] A+B - 8 (feat. BufferedReader, BufferdWriter)  (0) 2022.11.16
[인프런] 자바 알고리즘 문제풀이 단어 뒤집기  (0) 2022.10.11
[백준] 15552 빠른 A+B Java  (0) 2022.08.01
[백준] 2480 주사위 세개 Java  (0) 2022.07.30
[백준] 1000 A+B Java  (0) 2022.07.26
    '🤖Algorithm' 카테고리의 다른 글
    • [백준] A+B - 8 (feat. BufferedReader, BufferdWriter)
    • [인프런] 자바 알고리즘 문제풀이 단어 뒤집기
    • [백준] 15552 빠른 A+B Java
    • [백준] 2480 주사위 세개 Java
    Jaeyoung Kim
    Jaeyoung Kim
    보다 안정적인 코드 구현을 꿈꾸는 백엔드 개발자 지망생

    티스토리툴바