규도자 개발 블로그
[백준/11718/자바(Java)] 그대로 출력하기 본문
문제
입력 받은 대로 출력하는 프로그램을 작성하시오.
입력
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
출력
입력받은 그대로 출력한다.
입출력 예
입력 | 출력 |
---|---|
Hello Baekjoon Online Judge | Hello Baekjoon Online Judge |
풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
ArrayList<String> strList = new ArrayList<String>();
int count = 0;
while((line=in.readLine())!=null){
if(line.isEmpty()||count>100||line.startsWith(" ")||line.endsWith(" ")
||line.length()>100 || !Pattern.matches("^([a-zA-Z0-9 ]+)", line)) {
break;
}
else
{
strList.add(line);
}
}
for(String str : strList) {
System.out.println(str);
}
}
}
설명
간단한 설명만큼 간단한 문제는 아니었다. 사실 입력에 대한 조건 필터링은 필요 없더라... 그냥 이런 입력이 들어온다는 안내이고 해당 입력값을 벗어나는 값에 대한 예외처리는 하지 않아도 틀렸다는 평가는 받지 않았다. 하지만 뭐 만들었으니 쓴다만...
String클래스를 받는 리스트를 생성하여 입력받은 StringList를 차례대로 출력하면 되는 문제이다. 맨 처음에는 String변수 하나에 모든 요소를 받아서 출력하려고 했는데 그렇게 하면 엔터값에 대한 처리가 불가능하더라. 해서 이렇게 처리하였다. 그리고 문자열을 입력받을 땐 Scanner클래스가 아닌 BufferedReader클래스를 이용해야 한다.
'알고리즘 > 풀이' 카테고리의 다른 글
[백준/11720/자바(Java)] 숫자의 합 (0) | 2018.09.19 |
---|---|
[백준/11719/자바(Java)] 그대로 출력하기 2 (2) | 2018.09.19 |
[백준/11654/파이썬3(python3)] 아스키 코드 (0) | 2018.09.18 |
[백준/10998/자바(Java)] A x B (0) | 2018.09.18 |
[백준/10871/자바(Java)] X보다 작은 수 (0) | 2018.09.18 |
Comments