문제 풀이

[백준] 11718번: 그대로 출력하기 - JAVA (자바)

auyeol 2023. 8. 6. 10:47
728x90

 

문제

 

https://www.acmicpc.net/problem/11718

 

11718번: 그대로 출력하기

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시

www.acmicpc.net

 

입력받은 문자열을 빈줄없이 그대로 출력하는 문제이다.

 

 

입력                                    	출력
Hello						Hello
Baekjoon					Baekjoon
Hello World					Hello World

 

------------------------------------------------------------------------------------------------------------------

 

 

풀이

 

 

(1) Scanner 사용

 

While문의 조건에 hasNextLine()을 이용하였다. 

 

hasNextLine()은 boolean형식으로 반환해주는 메소드이다. 다음 줄에 입력이 있는지의 여부를 판단하여 True/False를 반환한다. 엔터(\n)도 동일하게 True로 반환하기 때문에 break를 해주어야 할 것 같은데 이 부분은 잘 모르겠다.... 

 

 +) 공백을 포함한 문자열도 그대로 출력해야하기 때문에 공백 전까지의 문자열을 받는 next()가 아닌 nextLine()을 이용하였다.

 

 

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);
		}
		sc.close();
	}
}

 

 

------------------------------------------------------------------------------------------------------------------

 

 

(2) BufferdReader 사용 

 

while문 밖에서 String 변수를 미리 선언해놓은 뒤, br.readLine()을 사용하였다.

 

입력이 없을 때까지 반복실행 되도록 (str = br.readLine()) != null 을 while문의 조건으로 설정하였다. 

 

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));
		String str;
		
		
		while((str=br.readLine())!=null) {
			System.out.println(str);
		}
		br.close();
	}
}

 

 

 

728x90