にあえん

主にバックエンド・インフラ周りをやってます。 あそびばはこちら -> ナナオのあそびば

アルゴ式の問題を解く Go パスワードの強度判定(3)

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 パスワードの強度判定(3) | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var s string fmt.Scan(&s) for i := 1; i < len(s); i++ { if s[i - 1] != s[i] { fmt.Println("safe") return } } fmt.Println("dangerous") } 隣合う数字が一致しなかった場合はsafe、としています。 ということで今回はこれで👍

2026年7月20日 · にあえん

アルゴ式の問題を解く Go 正しいパスワード

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 正しいパスワード | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" "strconv" ) func main() { var s string fmt.Scan(&s) if _, e := strconv.Atoi(s); len(s) == 4 && e == nil { fmt.Println("valid") } else { fmt.Println("invalid") } } strconvを使えば楽に数値判定が出来ますね。 エラーがなければ全て数値、という形で判定しています。 ということで今回はこれで👍

2026年7月19日 · にあえん

アルゴ式の問題を解く Go 文字種判定

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 文字種判定 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int var s string fmt.Scan(&n, &s) for _, c := range s { if 48 <= c && c <= 57 { fmt.Println("digit") } else if 65 <= c && c <= 90 { fmt.Println("uppercase") } else if 97 <= c && c <= 122 { fmt.Println("lowercase") } else { fmt.Println(string(c)) } } } 文字コードごとにifを作っただけの単純な実装になります。 ということで今回はこれで👍

2026年7月18日 · にあえん

アルゴ式の問題を解く Go 大文字小文字判定(1)

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 大文字小文字判定(1) | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var c string fmt.Scan(&c) if int(c[0]) - 96 > 0 { fmt.Println("lowercase") } else { fmt.Println("uppercase") } } ちなみに、 c[0]をintでキャストしているのは、デフォルトだとc[0]はbyte型(正体は uint8)だからです。 uint8 は「0〜255 の数しか入れられない箱」だと思ってください。マイナスの数はそもそも表現できません。 例えば文字としてAが渡されたとき、「A」の文字コードは 65 なのでc[0]は65になります。 ただuint8はマイナスを表現できなので、以下のようになります。 65 − 96 → 0を通り越して255側に回り込む → 225 なので、今回の実装ではマイナスを扱えるようにintに変換してあげる必要があるのです。面白いですね。 ということで今回はこれで👍

2026年7月17日 · にあえん

アルゴ式の問題を解く Go 何番目のアルファベット?

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 何番目のアルファベット? | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var c string fmt.Scan(&c) fmt.Println(c[0] - 96) } 文字をintの文字コードにして、aが1になるように調整してあげれば完成です。 ということで今回はこれで👍

2026年7月16日 · にあえん

アルゴ式の問題を解く Go 次のアルファベット

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 次のアルファベット | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var c string fmt.Scan(&c) fmt.Println(string(c[0] + 1)) } stringは結局スライスなので、インデックス指定して取得すれば文字コードとして取得できます。それに1足してあげれば次の文字が得られます。 ということで今回はこれで👍

2026年7月15日 · にあえん

アルゴ式の問題を解く Go 文字コード

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 文字コード | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { for i := 97; i <= 122; i++ { fmt.Println(i, string(i)) } } 文字コードの変換はstringでキャストすれば簡単にできます。 ということで今回はこれで👍

2026年7月14日 · にあえん

アルゴ式の問題を解く Go 4 と 6 の Fizz Buzz

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 4 と 6 の Fizz Buzz | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int fmt.Scan(&n) for i := 1; i <= n; i++ { if i % 4 == 0 && i % 6 == 0 { fmt.Println("FizzBuzz") } else if i % 4 == 0 { fmt.Println("Fizz") } else if i % 6 == 0 { fmt.Println("Buzz") } else { fmt.Println(i) } } } 前回実装したFizzBuzzの問題の条件式を買えただけですね。 ということで今回はこれで👍

2026年7月13日 · にあえん

アルゴ式の問題を解く Go Fizz の個数

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

2026年7月12日 · にあえん

アルゴ式の問題を解く Go Fizz Buzz

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 Fizz Buzz | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int fmt.Scan(&n) for i := 1; i <= n; i++ { if i % 3 == 0 && i % 5 == 0 { fmt.Println("FizzBuzz") } else if i % 3 == 0 { fmt.Println("Fizz") } else if i % 5 == 0 { fmt.Println("Buzz") } else { fmt.Println(i) } } } まぁ一般的なFizzBuzz実装じゃないでしょうか。 ということで今回はこれで👍

2026年7月11日 · にあえん