본문 바로가기
Algorithm

[백준 알고리즘] 11718번 그대로 출력하기 (I/O) - Java

by Baest 2021. 8. 17.

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

 

11718번: 그대로 출력하기

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

www.acmicpc.net

 

[문제]

 

[간략한 풀이]

- 입력을 받을 코드 작성 (입력 받는 값은 변수 String 타입의 변수 content에 저장)

- 출력 할 코드 작성

- 위 2가지만 해두고 예제의 입력 값이 잘 나오는지 확인했다. 확인 결과 잘나옴

- 이제 한 번 코드를 실행했을 때 여러번 입력하고 그 입력값이 출력되도록 반복문을 사용해준다.

while을 사용했고 반복 입력을 위해 hasnext()를 사용했다.

*hasnext()는 Scanner클래스에 포함되어 있고, 입력값이 있을 경우 true 아니면 입력을 무한정 기다린다.

- hasnext()를 통해 입력값을 무한정 기다리게 되면, 메모리 누수가 발행하므로 while 문이 끝나고 scan.close()를 통해 Scanner를 명시적으로 닫아준다. -> close 해주니 메모리가 조금 줄어들긴 했으나 close 안했을 때 메모리 누수 발생 여부에 대해서는 더 공부해야겠다. (확신이 없다...)

 

[제출한 정답 코드]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
 
        Scanner scan= new Scanner(System.in);
        
        while(scan.hasNext()) {
            String content = scan.nextLine();
            System.out.println(content); 
        }
        scan.close();
    }
}
 
 
cs

 

- 역시나 처음에 파이썬으로 풀어보려다가 최근 몇 개월간 계속 자바만 사용해서 헷갈렸다.

파이썬에서 꼬인 상태로 자바로 넘어와서 해결을 못하다가, 오늘 다시 해보니까 잘된다!