paizaの練習問題を解く 移動が可能かの判定・方向 Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 移動が可能かの判定・方向 | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 以下のように実装しました! package main import "fmt" func main(){ var h, w, sy, sx int var d, m string fmt.Scan(&h, &w, &sy, &sx, &d, &m) s := make([]string, h) for i := 0; i < h; i++ { fmt.Scan(&s[i]) } dir := []string{"N", "E", "S", "W"} var count int switch d { case "N": count = 4 case "E": count = 5 case "S": count = 6 case "W": count = 7 } if m == "R" { count++ } else { count-- } switch dir[count%4] { case "N": sy-- case "S": sy++ case "E": sx++ case "W": sx-- } if sy >= h || sx >= w || sy < 0 || sx < 0 || s[sy][sx] == '#' { fmt.Println("No") } else { fmt.Println("Yes") } } でもなんかスリムじゃないですよね。 ...