paizaの練習問題を解く 最長の区間 Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 最長の区間 | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 以下のように実装しました。 package main import "fmt" func main(){ var n, m int fmt.Scan(&n, &m) a := make([]int, n) x := 0 s := make([]int, n) for i := 0; i < n; i++ { fmt.Scan(&a[i]) x += a[i] s[i] = x } sum := 0 d := 0 l := 0 for r := 0; r < n; r++ { sum += a[r] for sum > m { sum -= a[l] l++ } c := r - l + 1 if d < c { d = c } } fmt.Println(d) } なんででしょう、しゃくとり法がなぜか直感的にちゃんと理解できていない… もっとAIと壁打ちして、ちゃんと理解できるようにしないと…!! ということで今回はこれで👍