0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【競技プログラミング】AtCoder Beginner Contest 384_A問題とGo言語

Posted at

会社からの緊急確認

お前、Go言語使えるよな?Goを使えるメンバー探してるからOKって言っておくよ。とのラインが・・・

Go言語は2,3年以上使っていないし、pythonに慣れすぎて、あの厳密な型定義に耐えられない気がする。

とはいえ、昔と違い今はChatGPT様がいるから対して問題じゃないんですよね。(メンバー探しているプロジェクトで生成AI使用禁止などのルールがなければですが)

とりあえず、AtCoderのA問題で確認しておきますか。

Python

まずは、慣れているPython

ac.py
def main() -> None:
    N,c1,c2 = input().split()
    S = input()

    T = [""] * len(S)

    for i in range(len(S)):
        if S[i] != c1:
            T[i] = c2
        else:
            T[i] = S[i]
    
    print("".join(T))



if __name__ == "__main__":
    main()

Go言語

ac.go
package main

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

func main() {
    reader := bufio.NewReader(os.Stdin)

    // 入力を読み込む
    var N string
    var c1, c2 string
    fmt.Scan(&N, &c1, &c2)

    S, _ := reader.ReadString('\n')
    
    // 文字列Sの長さを取得
    length := len(S) - 1 // 改行文字を除くため -1

    // 新しいスライスを作成
    T := make([]rune, length)

    for i, char := range S[:length] {
        if string(char) != c1 {
            T[i] = []rune(c2)[0] // c2の最初の文字を代入
        } else {
            T[i] = char // c1の場合はそのまま代入
        }
    }

    // 結果を出力
    fmt.Println(string(T))
}

思い出してきた。。。
pythonからGoに移るのって結構手間取るんだった。
付け焼き刃では心もとないな・・・
Goの学習開始時に非常に参考にさせていただいた、UdemyのGoの講座さっと復習した方が良さそうですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?