-
[알고리즘] Scanner VS BufferedReaderComputer Science/Algorithm 2023. 3. 3. 19:21반응형
📍 Scanner와 BufferedReader는 대표적으로 사용자(키보드) 입력을 받기 위해 사용하는 클래스
- BufferedReader가 속도 측면에서 더 우위를 가지고 있음
- 데이터 인풋의 양이 적을 경우에는 문제 없지만, 데이터 양이 많아질수록 성능 차이가 크게 발생Scanner 사용법
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.next(); // 공백 이전 문자열 반환 int inputNum = sc.nextInt(); // 공백 이전의 숫자 반환 } }
BufferedReader 사용법
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 입력 값의 한 줄을 전체를 읽어 한글자씩 배열 형태로 반환 char[] ch = br.readLine().toCharArray(); // 데이터의 특정 구분자 기준(여기선 " ")에 따라 문자를 Token으로 끊어 읽음 StringTokenizer st = new StringTokenizer(br.readLine(), " "); int i = Integer.parseInt(st.nextToken()); int j = Integer.parseInt(st.nextToken()); } }
➡️ 백준을 풀다보면 생각보다 BufferedReader로 시간초과 유무가 걸리는 경우가 많아, 복잡하더라도 BufferedReader로 푸는 연습을 해야겠다.
하지만, 실제 코딩테스트에서는 입출력에 소요되는 시간은 보통 배제하기 때문에 BufferedReader의 복잡성이 싫은 사람은 굳이 바꾸지 않아도 될 것 같다.반응형'Computer Science > Algorithm' 카테고리의 다른 글
[알고리즘] 카운팅 정렬 (Counting sort) - 자바 Java (0) 2022.08.21 [알고리즘] 이진 검색 (Binary search) - 자바 Java (0) 2022.08.21 [알고리즘] 순차 검색 (Sequential search) - 자바 Java (0) 2022.08.21 [알고리즘] 퀵 정렬 (Quick sort) - 자바 Java (0) 2022.08.14 [알고리즘] 삽입 정렬 (Insertion sort) - 자바 Java (0) 2022.08.13