728x90
반응형
BufferedReader / Writer 예제
10만개가 넘어가는 Data를 빠른 속도로 입력 / 출력 받기 위해서는 BufferedReader / BufferedWriter 를 사용해야합니다.
입력예시
5 3
5 4 3 2 1
1 3
2 4
5 5
출력예시
N : 5
K : 3
numbers : 5 4 3 2 1
questions : (1, 3) (2, 4) (5, 5)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
static int[] numbers;
static int[][] questions;
static int N;
public static void main(String[] args) throws IOException {
// 파일에 이별된 예제를 사용.. 시험에서는 아래 한줄을 주석 처리
System.setIn(new FileInputStream("input\\rsq.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
numbers = new int[N+1]; // 0은 사용하지 않으니까 1부터 N까지
questions = new int [K+1][2];
st = new StringTokenizer(br.readLine());
for(int i=1; i<=N; i++){
numbers[i] = Integer.parseInt(st.nextToken());
}
for(int i=1; i<=K; i++){
st = new StringTokenizer(br.readLine());
questions[i][0] = Integer.parseInt(st.nextToken());
questions[i][1] = Integer.parseInt(st.nextToken());
}
bw.write("N : " + N + "\n");
bw.write("K : " + K + "\n");
bw.write("numbers : ");
for(int i=1; i<=N; i++){
bw.write(numbers[i] + " ");
}
bw.write("\n");
bw.write("questions : ");
for(int i=1; i<=K; i++){
bw.write("(" + questions[i][0] + ", " + questions[i][1] + ") ");
}
bw.write("\n");
br.close();
bw.close();
}
}
728x90
반응형