Coding Test/Tips

자바 기본 입출력 (코테전용)

즐거운 개발계발 2023. 1. 31. 06:31

출처: https://i5i5.tistory.com/725

개요

자바 언어로 코딩테스트를 할 때, 입력값을 받는 방법
BufferdReader와 StringTokenizer를 활용하는 방법이 있다.

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);
    }
}