アルゴ式の問題を解く Go 書き換え回数

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 書き換え回数 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int var s, t string fmt.Scan(&n, &s, &t) c := 0 for i := 0; i < n; i++ { if s[i] != t[i] { c++ } } fmt.Println(c) }

2026年6月20日 · にあえん

アルゴ式の問題を解く Go 部屋番号

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 部屋番号 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" "strconv" ) func main() { var n int fmt.Scan(&n) for i := 1; i <= n; i++ { a := strconv.Itoa(i) for _, v := range a { if v == '4' || v == '9' { goto again } } fmt.Println(i) again: } } goto文を使ったので割とすっきり実装できたんじゃないでしょうか。 ということで今回はこれで👍

2026年6月19日 · にあえん

アルゴ式の問題を解く Go カレンダー(2)

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 カレンダー(2) | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { for i := 1; i <= 3; i++ { fmt.Printf(". ") } for i := 1; i <= 31; i++ { fmt.Printf("%d ", i) if (i + 3) % 7 == 0 { fmt.Println() } } } ということで今回はこれで👍

2026年6月18日 · にあえん

アルゴ式の問題を解く Go 文字列検索

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 文字列検索 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var s, t string fmt.Scan(&s, &t) for i := 0; i < len(s) - len(t); i++ { if s[i:i+len(t)] == t { fmt.Println("Yes") return } } fmt.Println("No") } ですが、これだと最後尾に一致する文字列があった場合に見逃してしまうので、ループの終了条件に+1します。 package main import ( "fmt" ) func main() { var s, t string fmt.Scan(&s, &t) for i := 0; i < len(s) - len(t) + 1; i++ { if s[i:i+len(t)] == t { fmt.Println("Yes") return } } fmt.Println("No") } Goは切り抜きが簡単にできるので、こういった実装は割とすっきり書けますね。 ということで今回はこれで👍

2026年6月17日 · にあえん

アルゴ式の問題を解く Go カレンダー(1)

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 カレンダー(1) | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { for i := 1; i <= 31; i++ { fmt.Printf("%d ", i) if i % 7 == 0 { fmt.Println() } } } ということで今回はこれで👍

2026年6月17日 · にあえん

アルゴ式の問題を解く Go 文字列の切り出し

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 文字列の切り出し | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n, l, r int var s string fmt.Scan(&n, &l, &r, &s) fmt.Println(s[l:r+1]) } Goにはデフォルトでスライスを切り抜く方法が用意されているので、かなりすっきりと実装できましたね。 ということで今回はこれで👍

2026年6月16日 · にあえん

アルゴ式の問題を解く Go 文字列探し(1)

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 文字列探し(1) | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int var s string fmt.Scan(&n, &s) c := 0 for i := 0; i < n - 2; i++ { if s[i:i+3] == "abc" { c++ } } fmt.Println(c) } ということで今回はこれで👍

2026年6月15日 · にあえん

アルゴ式の問題を解く Go 一致箇所(2)

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 一致箇所(2) | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int var s, t string fmt.Scan(&n, &s, &t) c := 0 for i := 0; i < n; i++ { if s[i] == '?' || t[i] == '?' || s[i] == t[i] { c++ } } fmt.Println(c) } ということで今回はこれで👍

2026年6月14日 · にあえん

アルゴ式の問題を解く Go 一致箇所(1)

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 一致箇所(1) | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int var s, t string fmt.Scan(&n, &s, &t) c := 0 for i := 0; i < n; i++ { if s[i] == t[i] { c++ } } fmt.Println(c) } ということで今回はこれで👍

2026年6月13日 · にあえん

アルゴ式の問題を解く Go 文字探し(3)

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 文字探し(3) | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int var s string fmt.Scan(&n, &s) c := 0 for i := 0; i < n; i++ { if s[i] == 'a' { c++ } } fmt.Println(c) } ということで今回はこれで👍

2026年6月12日 · にあえん