[JAVA] 입력과 출력

조소복·2022년 8월 4일
0
post-custom-banner

자바로 알고리즘을 풀면서 알게된 입력방법과 출력방법이다. 일반적으로 Scanner를 많이 쓰게되는데 시간초과가 발생하는 문제를 만난 이후로 BufferedReader를 이용하여 입력을 받는 방식을 이용하고 있다.

입력

보통 자바 알고리즘을 풀때 다음과 같은 방식을 많이 사용한다. 이 방법이 나쁘다는 것은 아니지만 입력개수가 많아지게 되면 시간초과가 발생하는 경우도 있어 다른 방식도 기록하려 한다.

Scanner

Scanner sc=new Scanner(System.in);

BufferedReader

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(br.readLine());

BufferedReader를 이용하여 입력을 받는데 이때 System.in을 직접적으로 받을 수 없기때문에 InputStreamReader라는 보조 스트림으로 연결해준다.

StringTokenizer를 이용하여 받은 입력값을 구분자로 분리해주는 작업을 한다.

물론 split()을 이용할 수도 있다.

주의해야 할 점이라면

  • String 형식으로 받아오기 때문에 숫자를 받기 위해서는 Integer.parseInt()으로 변환해줘야 한다.
  • br.readLine()은 한 줄씩 받아오는 것이기 때문에 여러줄을 입력을 받게 되는 경우에는 st=new StringTokenizer(br.readLine()); 매번 이 코드를 적어줘야 한다. (for문)

출력

또한 출력에서도 많은 값을 출력하는 과정에서 시간초과가 발생하는 경우가 있는데 이때는 StringBuilder를 이용한다.

StringBuilder

StringBuilder sb=new StringBuilder();

sb.append(출력값+"\n");

위와 같은 방식으로 사용하고 마지막 코드가 끝날때 System.out.println(sb); 를 해주면 된다.


혼자서만 알고리즘을 풀려고 했으면 이러한 방법을 알지 못했을 것 같다. 주위에서 자바로 알고리즘을 푸는 사람들의 조언을 얻으면서 자바로 알고리즘을 푸는 방식을 알아가고 있다.

profile
개발을 꾸준히 해보자
post-custom-banner

0개의 댓글