본문 바로가기

알고리즘/백준

[백준 알고리즘 자바] 11718: 그대로 출력하기

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

 

11718번: 그대로 출력하기

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

www.acmicpc.net


문제

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

입력

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

출력

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

입출력 예제


풀이방식설계

1. 문자를 입력받은 후, 입력받은 만큼 반복문을 돌려서 해당 문자들을 그대로 출력한다.


풀이과정(Scanner)

1. 문자들을 입력받는다.

 

2. while 문을 통해 입력받은 문자가 없을 때 까지 반복하며 문자를 출력한다.

  • hasNext() : boolean 타입으로 반환하기에 true / false로 반환된다. 다음에 가져올 값이 있으면 true, 없으면 false를 반환한다.
  • next() : 매개변수 혹은 iterator 되는 타입으로 반환한다. 즉, String으로 입력받으면 String으로 반환한다.

3. 결과를 출력한다.

  • nextLine() : Enter 치기 전까지 쓴 문자열을 모두 리턴한다.
  • next() : 공백 전까지 입력받은 문자열을 리턴한다.

풀이과정(BufferedReader)

1. 두 정수를 입력받고 변수 str 을 선언한다.

 

2. while문을 통해 입력받은 문자가 있다면 반복해서 문자를 출력한다.

  • br.readLine() : 한 줄만 입력받는다.
  • 매번 한 줄을 입력받아서 출력하고, 다음 한 줄의 유무를 확인한다.

3. 결과를 출력한다. 


답안소스(Scanner)

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner(System.in);
		
		while(sc.hasNext()) {
			System.out.println(sc.nextLine());
		}
    }
}

답안소스(BufferedReader)

import java.io.*;

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

https://www.acmicpc.net/problem/11719 와 완전히 동일한 코드 답안이기에 이 글로 설명을 대체한다.

 

11719번: 그대로 출력하기 2

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

www.acmicpc.net