こんにちは、ナナオです。
前回に引き続き競プロを実施していきたいと思います。
今回の問題は以下です。
実装
以下のように実装しました。
package main
import (
"fmt"
"strconv"
)
func main() {
var n int
fmt.Scan(&n)
s := strconv.Itoa(n)
// カンマを付与する
var t []rune
cnt := 0
for i := len(s) - 1; i >= 0; i-- {
if cnt % 3 == 0 && cnt > 0 {
t = append(t, ',')
}
t = append(t, rune(s[i]))
cnt++
}
// 逆にする
var r []rune
for i := len(t) - 1; i >= 0; i-- {
r = append(r, t[i])
}
fmt.Println(string(r))
}
逆にするループは削れそうです。
package main
import (
"fmt"
"strconv"
)
func main() {
var n int
fmt.Scan(&n)
s := strconv.Itoa(n)
// カンマを付与する
var t string
for i := 1; i <= len(s); i++ {
t = string(s[len(s) - i]) + t
if i % 3 == 0 && i < len(s) {
t = "," + t
}
}
fmt.Println(string(t))
}
これでいいですね。
ということで今回はこれで👍