Golang 빠른 입출력

김영한·2021년 3월 8일
0

Go

목록 보기
4/6

백준을 Go로 풀다가 입출력 부분에서 시간초과가 났다.

  1. 기존에는 fmt 패키지를 사용해 Scan과 Print를 사용했는데 매우 느리다고 한다.
  2. 따라서 bufio를 사용해야한다.

❗️ bufio 사용하기

t개의 테스트 케이스를 받아서 t줄에 걸쳐 a와 b를 입력받고 더해서 출력하는 코드이다.
빠른 A+B

package main

import (
	"fmt"
	"bufio"
	"os"
)

func main() {
	var length int

	// use bufio for fast scan
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
        defer writer.Flush()
    
	fmt.Fscanln(reader, &length)

	var a, b int

	for i:=0; i<length; i++ {
		fmt.Fscanln(reader, &a, &b)
		fmt.Fprintln(writer, a+b)
	}
	
}

프로그램을 종료하기 전에 out.Flush() 를 꼭 실행해야한다.

0개의 댓글