[BaekJoon] 11719번 - 그대로 출력하기2 (java)

1. 문제

👉 문제 바로가기

- 조건

시간 제한 메모리 제한
1초 256MB


- 문제

입력 받은 대로 출력하는 프로그램을 작성하시오.

- 입력

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다.

- 출력

입력받은 그대로 출력한다.

- 예제

  입력      출력  
    Hello

Baekjoon
   Online Judge
    Hello

Baekjoon
   Online Judge





2. 풀이

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);
        
        while(sc.hasNextLine()){
            String str = sc.nextLine();
            System.out.println(str);
        }
    }
}

위와같이 객체를 생성할 때, Scanner(System.in) 에서 System.in 은 입력한 값을 Byte 단위로 읽는 것을 뜻한다.

hasNextLine() 는 입력이 다음 라인에 있으면 True를 반환한다.
이 메소드는 입력을 기다리는 동안 막는다.

Enter 입력 전까지의 데이터를 입력받기 위해 nextLine() 메서드를 사용한다.



[여기서 잠깐!]

Scanner에 대해 더 자세히 알고싶다면 여기 를 클릭하세요




2-2. BufferedReader 클래스 사용


readLine() 메서드를 사용해 읽어온 문자열을 공백단위로 분리한다.
문자열 분리 방법으로는 StringTokenizer 클래스를 사용한다.


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

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        String str;
        while((str = br.readLine()) != null){
            System.out.println(str);
        }
    }
}

readLine() 은 개행문자(Enter) 입력 전까지 한 줄을 읽는 메서드이다.



[여기서 잠깐!]

BufferedReader 클래스에 대해 더 알아보고 싶으면 여기를 클릭하면 된다.





3. 성능 비교

image

입력의 경우 확실히 Scanner 보다는 BufferedReader 가 빠른 것을 볼 수 있다.





관련 페이지

Categories:

Updated:

Leave a comment