Cracking Code

[입출력 (I.O.)] 백준 11718: 그대로 출력하기, Java 본문

Algorithms/입출력 (I.O.)

[입출력 (I.O.)] 백준 11718: 그대로 출력하기, Java

CrackCo 2020. 7. 27. 23:49

1. 접근

저번 게시글 10951번 문제에 이어 테스트 케이스 수가 주어지지 않았습니다.

10951의 해결법을 응용하여 문자열의 입출력을 수행합니다.

 

2. 해결

String 데이터형의 공백 포함 엔터 전까지 받는 메소드는 nextLine() 을 사용합니다.

다음에 받아올 문자열이 있는지 확인하기 위해

Scanner 객체의 hasNextLine() 메소드를 while 문의 조건부에 사용하면 쉽게 해결할 수 있었습니다.

 

3. 코드

import java.util.Scanner;

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

        while (sc.hasNextLine()) {
            String s = sc.nextLine();
            System.out.println(s);
        }

        sc.close();
    }
}

 

4. 추가 코드

문제를 해결하고 나서 소요시간을 조금 더 줄일 수 있는 방법이 없을까 찾아보았습니다.

자바의 BufferedReader 객체를 이용하여 입력을 받아오면

메모리의 사용량과 속도가 조금 더 빠르게 나타났습니다.

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

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

BufferedReader 객체를 사용하기 위해선 IOException이 필요합니다.

'Algorithms > 입출력 (I.O.)' 카테고리의 다른 글

[입출력 (I.O.)] 백준 10951: A+B - 4, Java  (0) 2020.07.26
Comments