✏️ [Java] 코딩 테스트 준비를 위한 입출력

박상민·2024년 1월 15일
0

JAVA

목록 보기
2/3
post-thumbnail

저는 원래 파이썬으로 코딩 테스트를 준비했습니다.
여러가지 이유가 있지만 가장 큰 이유 2가지는
1. 처음 사용했고, 처음 코딩테스트 문제를 푼 언어가 파이썬이다.
2. 데이터 관련 학과 특성상 파이썬이 주요 언어이다.

위와 같은 이유 때문에 지금까지는 코딩테스트를 파이썬으로 준비를 했습니다.

그러나 근래에 자주 의문이 생깁니다.
'나는 자바 백엔드 개발자를 준비하는데 파이썬보다는 자바로 코딩 테스트를 준비하는게 좋지 않나?'라는 의문입니다. 실제로 요즘 자바 백엔드 직군의 코딩 테스트 언어를 자바로 제한하는 기업도 점점 늘어나는 추세이고, 부트캠프 또한 마찬가지였습니다.

제가 당장 1~2달 뒤에 코딩 테스트를 봐야하는 상황이라면 자바로 코테 언어를 변경하지 않겠지만 이제 막 3학년을 올라가는 시기이기에 지금이 유일한 기회라고 생각해 자바로 코테 언어를 변경하려고 합니다.

겸사겸사 자바 문법과 자료구조도 공부하는 좋은 기회라고 생각합니다!

개요

자바는 일반적으로 Scanner로 입력을 받고, System.out.println()으로 출력을 한다.
하지만 이 방법은 시간 소모가 크다는 단점이 있다.

자바 입력 클래스

  • Scanner, BufferedReader, StringTokenizer
  • BufferedReader, StringTokenizer 는 문자열로 활용하기 위해 사용
  • BufferedReader를 사용하는 것이 Scanner를 사용하는 것보다 빠르다.

BufferedReader

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();

StringTokenizer

  • StringTokenizer는 공백이 있을 때 뒤에 문자열이 공백 처리를 땡겨 채우도록 한다.
  • StringTokenizer가 BufferedReader보다 빠르게 사용될 수 있다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());

String A = st.nextToken();
String B = st.nextToken();
String C = st.nextToken();
String D = st.nextToken();

BufferedReader를 사용하는 경우

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String[] input = br.readLine().split(" ");

자바의 출력 클래스

  • System.out.println(""), BufferdWriter, StringBuilder
  • 일반적으로 출력할 때 System.out.println("")를 사용한다. 적은 양의 출력에서는 편리하고 성능 차이가 없지만 많은 양의 출력을 할 때는 BufferedWriter이나 StringBuilder를 사용하는 것이 좋다

BufferedWriter

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // 선언
String str = "abcdef"; // 출력할 문자열
bw.write(str); // 출력
bw.newLine(); // 줄바꿈
bw.flush(); // 남아있는 데이터 모두 출력
bw.close();

BufferedWriter는 버퍼를 잡아 놓은 것이기에 반드시 사용후에 flush()/close()를 해주어야한다. close()를 하게되면 출력 스트림을 아예 닫아버리기 때문에 한번 출력후에 다른 것도 출력하고자 한다면 flush()를 사용하면 된다.

StringBuilder
그냥 문자열이기 때문에 매우 간단하다.

StringBuilder sb = new StringBuilder();
sb.append("a");
sb.append("b").append(" ");
sb.append("c").append("\n");
System.out.println(sb);

출처
https://sangwoo0727.github.io/java/JAVA-20_input/
https://wkimdev.github.io/java/2018/04/06/java-io-bufferedreader/
https://rlakuku-program.tistory.com/33
https://code0xff.tistory.com/10

profile
스프링 백엔드를 공부중인 대학생입니다!

0개의 댓글