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

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

今回の問題は以下です。

パスワードの強度判定(5) | アルゴ式

実装

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

package main
import (
    "fmt"
)

func main() {
    var s string
    fmt.Scan(&s)
    same := true
    u := true
    d := true
    for i := 1; i < len(s); i++ {
        if u && s[i] - s[i - 1] != 1 {
            u = false
        }
        if d && s[i - 1] - s[i] != 1 {
            d = false
        }
        if same && s[i - 1] != s[i] {
            same = false
        }
    }
    if same || u || d {
        fmt.Println("dangerous")
    } else {
        fmt.Println("safe")
    }
}

sameが同じ文字かどうかの判定、uが単純な増加かどうかの判定、dが単純な減少かどうかの判定です。

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