삽질메모장

코딩테스트에 자주 쓰이는 입출력 팁 본문

Programming/JAVA

코딩테스트에 자주 쓰이는 입출력 팁

shovel 2023. 12. 4. 22:15

1. JAVA input class

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

1-1. BufferedReader 

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

 

1-2. StringTokenizer 

  • StringTokenizer는 공백이 있을 때 뒤에 문자열이 공백처리를 땡겨 채우도록 한다.
  • StringTokenizer가 BufferedReader보다 빠르게 사용 될 수 있다.

-StringTokenizer 사용시

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

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

 

BufferedReader를 사용시

BufferedReader BFR = new BufferedReader(new InputStreamReader(System.in));
String[] input = BFR.readLine().split(" ");

 

2. 자바의 출력 클래스

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

2-1. BufferedWriter

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "adc";
bw.write(s); //출력
bw.newLine(); //줄바꿈
bw.flush(); // 버퍼의 남은 데이터 전체 출력
bw.close();

 

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

 

2-2. StringBuilder

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

 

 

 

reference

https://velog.io/@kimmjieun/Java-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%9E%85%EC%B6%9C%EB%A0%A5-%ED%8C%81