JAVA로 빠른 입출력

공부용·2025년 7월 23일

문자열 결합

  • StringBuilder
    * synchronized 처리 안 함 → 단일 스레드에서 더 빠름
    • 알고리즘 풀이 대부분이 단일 스레드이므로, StringBuilder 를 권장
// 예시
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++) {
    sb.append(arr[i]).append(' ');
}
System.out.println(sb.toString());

빠른 입력 받기

  • BufferedReader + StringTokenizer
    표준 입력을 한 줄씩 읽어들여 공백 단위로 토큰화
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(
            new InputStreamReader(System.in)
        );
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        
        // 여러 줄 입력
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            sb.append(a + b).append('\n');
        }
        System.out.print(sb);
        
        br.close();
    }
}

빠른 출력

StringBuilder 사용

StringBuilder sb = new StringBuilder();

// 결과를 sb에 차곡차곡 쌓고…
sb.append(result).append('\n');
profile
공부 내용을 가볍게 적어놓는 블로그.

0개의 댓글