こんにちは、ナナオです。

前回に引き続き競プロを実施していきたいと思います。

今回の問題は以下です。

構造体の更新 | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】

実装

以下のように実装しました。

package main
import "fmt"
type User struct {
    nickname string
    old int
    birth string
    state string
}
func (u *User) ChangeName(nickname string) {
    u.nickname = nickname
}
func (u User) Printf() {
    fmt.Printf("%s %d %s %s\n", u.nickname, u.old, u.birth, u.state)
}
func main(){
    var n, k int
    fmt.Scan(&n, &k)
    u := make([]User, n)
    for i := 0; i < n; i++ {
        fmt.Scan(&u[i].nickname, &u[i].old, &u[i].birth, &u[i].state)
    }
    for i := 0; i < k; i++ {
        var m int
        var nn string
        fmt.Scan(&m, &nn)
        u[m - 1].ChangeName(nn)
    }
    for i := 0; i < n; i++ {
        u[i].Printf()
    }
}

goのセッター実装は初めてだったのでよくわかりませんでしたが、ポインタレシーバをつければいいだけでしたね。

ということで今回はこれで👍