소소한 개발이야기

[BOJ #11718번 JAVA] 그대로 출력하기 본문

BOJ

[BOJ #11718번 JAVA] 그대로 출력하기

plplim 2019. 3. 5. 17:59

[백준 온라인 저지] #11718번 (그대로 출력하기) 문제풀이



입력 횟수가 주어지지 않으므로 그 부분만 주의해서 문제를 풀면 쉬운 출력문제이다.

총 2가지의 입력 방법에 대한 풀이가 있다.






첫 번째, Scanner를 이용한다면 Scanner의 hasNext() 함수를 이용하여 다음 입력값이 있는지 확인하고 출력해주면 된다.


1
2
3
4
5
Scanner in = new Scanner(System.in);
 
while (in.hasNext()) {
    System.out.println(in.nextLine());
}

cs


두 번째, BufferedReader를 이용한다면 null인지 확인만 해주면 된다.


1
2
3
4
5
6
7
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
String str = "";
 
while ((str = br.readLine()) != null) {
    System.out.println(str);
}
cs


위의 코드를 백준 온라인 저지에 제출을 하면 문제없이 맞았습니다! 를 얻게 된다. 

하지만 보통의 사람들은 테스트코드를 자신의 IDE에서 작성해 본 다음 제출을 하는게 대부분이다. 

내가 사용하는 Intellij에서 확인하기 위해선 StringBuilder나 ArrayList 등 한 곳에 입력값들을 저장하고 한 번에 출력해야지만 출력이 된다.

그러지 않으면 엔터값을 계속해서 읽어들이기 때문에 테스트가 되질 않는다


1
2
3
4
5
6
7
8
9
10
StringBuilder builder = new StringBuilder();
while(true){
String str = br.readLine();
if (str == null || str.isEmpty()) {
     break;
}
builder.append(str).append("\n");
}
br.close();
System.out.println(builder);
cs




전체 소스코드는 Github에 올려져 있습니다.


더 좋은 방법이나 문제가 있는 부분 말씀해주시면 적극 반영하겠습니다.


Github

https://github.com/seungrokoh/Beakjoon_OnlineJudge

'BOJ' 카테고리의 다른 글

[BOJ #1244번 JAVA] 스위치 켜고 끄기  (0) 2019.03.05
[BOJ #2884번 JAVA] 알람 시계  (0) 2019.03.05
[BOJ #2490번 JAVA] 윷놀이  (0) 2019.03.05
[BOJ #8958번] OX퀴즈  (0) 2019.03.04
[BOJ #10989번] 수 정렬하기 3  (0) 2019.02.28
Comments