728x90
원래는 Java에서 입력을 받는 방법 중 Scanner를 이용하고 있었는데, 이 방법이 시간을 많이 잡아먹어서 TimeLimited 문제가 많이 발생했다. 그래서 이제는 시간을 단축시키기 위해 BufferedReader 방법으로 입력을 받고 있다.
단, 해당 방법은 줄 단위(enter 기준)로 입력을 받기 때문에 공백(space) 기준으로 입력을 받기 위해서는 토큰화를 해주어야 한다.
1) 정수형을 enter 기준으로 입력 받을 때
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bf.readLine());
}
}
2) 정수형을 공백 기준으로 입력 받을 때
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int[] nums = new int[5];
StringTokenizer st = new StringTokenizer(bf.readLine());
for(int i = 0; i < 5; i++)
nums[i] = Integer.parseInt(st.nextToken());
}
}
3) 문자열을 enter 기준으로 입력 받을 때
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Num1181 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] words = new String[5];
for(int i = 0; i < 5; i++)
words[i] = bf.readLine();
}
}
이 정도만 알면 응용해서 대부분의 입력을 받는 것이 가능할 것으로 본다.
728x90
'Programming > JAVA' 카테고리의 다른 글
[Java] LinkedList (0) | 2022.01.21 |
---|---|
[Java] StringBuilder로 출력하기 (0) | 2022.01.21 |
[백준] 단계별로 풀어보기 > 정렬 (java) (0) | 2022.01.14 |
[백준] 단계별로 풀어보기 > 브루트 포스 (Java) (0) | 2022.01.11 |
[백준] 단계별로 풀어보기 > 재귀 (Java) (0) | 2022.01.09 |