알고리즘/알고리즘
[알고리즘] 자바 기본 입출력하기 (코딩테스트 전용, 코테전용)
2022. 1. 19. 20:56반응형
개요
자바언어로 코딩테스트를 할 때, 입력값을 받아야 할 때가 있다. 그 때,
BufferedReader와 StringTokenizer를 활용해서 입력받는 방법을 알아볼 것이다.
아래의 소스코드는, 백준이나 다른 코딩테스트에서 입력값을 받을 때, 유용하게 쓰일 것이다.
(참고로, BufferedReader를 통해 읽어들이는 게, System.in.read 보다 빠르다고 한다.)
소스코드 및 설명
package E20210708_2305;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class main {
static int[][] arr = new int[301][301];
public static void main(String[] args) throws IOException {
// << 입력부 >>
// n행 m열 배열은 입력받는다고 생각해보자.
// 예) 4행 3열짜리 2차원배열을 입력받아보자.
// 받은 후 그대로 출력하기.
/*
4 3
1 2 3
3 4 5
6 7 1
1 2 3
*/
// Buffered Reader를 통해, 시스템기본(키보드) 입력을 목적으로, 인풋스트림리더를 하나 만든다.
// 그 후, br.readLine() 메서드로 한줄 읽고, " "를 기준으로 자른다. 그 후, stk에 저장.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stk = new StringTokenizer(br.readLine()," "); // 읽은 라인을 " "으로 자른다.
// 자른 것 중 하나를 n에 저장 후, 그 다음 것을 m에 저장.
int n = Integer.parseInt(stk.nextToken());
int m = Integer.parseInt(stk.nextToken());
// 그 다음 부터 행의 갯수만큼 라인을 입력받아서, StringTokenizer로 자를 예정임.
for (int i = 0; i < n; i++) {
stk = new StringTokenizer(br.readLine(), " ");
for (int j = 0; j < m; j++) {
arr[i][j] = Integer.parseInt(stk.nextToken());
}
}
// << 출력부 >> (테스트하기)
StringBuilder sb = new StringBuilder();
sb.append("n : " + n + ", m : " + m).append('\n');
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
sb.append(arr[i][j]);
}
sb.append('\n');
}
System.out.println(sb);
}
}
출력화면
아래는 입력부 4 3 1 2 3 3 4 5 6 7 1 1 2 3 아래는 출력부 n : 4, m : 3 123 345 671 123 |
끝. 질문은 아래 답글로 남겨주세요.
반응형
'알고리즘 > 알고리즘' 카테고리의 다른 글
[알고리즘] 병합정렬 (Merge sort) (0) | 2024.12.05 |
---|---|
[알고리즘] 기수정렬 (1) | 2023.12.26 |
[알고리즘] BFS/DFS 의사코드 (0) | 2022.11.27 |
재귀 함수 쉽게 이해하기 및 예시 (2) | 2022.03.08 |