edo1z blog

プログラミングなどに関するブログです

Go言語 - Atcoderするときのメモ

Atcoderで標準入力から色々取得することのメモ

1行読む

var n, a, b int
fmt.Scan(&n)
fmt.Scan(&a)
fmt.Scan(&b)

下記のようにスペースを空けると、別々に登録される。半角スペースまでをScanするもよう。

20 1 4

2行読む

2行でもこれでできた

func main() {
    var n int
    var s string
    fmt.Scan(&n, &s)

これだと、改行しないでスペースで区切ってもOKだし、改行してもOKだった。楽。

別の方法は、下記に書いてあるの真似した。上記のが圧倒的に楽。でも下記によると下記の方が速い可能性があるっぽい。まあでも楽な方がいいや。

qiita.com

package main

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

var sc = bufio.NewScanner(os.Stdin)

func nextLine() string {
    sc.Scan()
    return sc.Text()
}

func main() {
    var n int
    var a string
    n, _ = strconv.Atoi(nextLine())
    a = nextLine()
    fmt.Println(n)
    fmt.Println(a)
}