BOJ/Go

[Go] BOJ / 15552번 / 빠른 A+B

d체리b 2023. 3. 16. 15:05

💻 문제

📜 풀이

package main

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

func main() {
	r := bufio.NewReader(os.Stdin)
	w := bufio.NewWriter(os.Stdout)

	defer w.Flush()

	var a, b, t int

	fmt.Fscanln(r, &t)

	for i := 0; i < t; i++ {
		fmt.Fscanln(r, &a, &b)
		fmt.Fprintln(w, a+b)
	}
}

 

✍ 설명

  • bufio.NewReader(os.Stdin) : NewReader의 파라미터로 os.Stdin을 넣어 stdin에서 입력을 읽어 옴
  • bufio.NewWriter(os.Stdout)
    • w.Flush() : Flush 를 사용하여 모든 버퍼링된 작업이 Writer에 적용되었는지 확인
    • 한 줄에 모두 출력할 경우에는 버퍼링을 활용한 fmt.Fprintf가 월등히 빠르나 줄 수가 늘어나는 경우에는 fmt.Printf가 빠른 경우도 존재
  • fmt.Fscanln : 버퍼링을 활용하여 속도가 빠름
728x90