GoでABC139、Rubyで指定範囲の曜日カウントするやつ、ssh-copy-id
- GoでABC139やった
- Rubyで指定範囲の第一営業日の曜日をカウントするやつ
- ssh-copy-idコマンド
GoでABC139の問題やった
(リアルタイム参加してない)
A - Tenki
Goでこんな感じに書くのがいいのかわからない。
package main
import "fmt"
func main() {
var s, t string
fmt.Scan(&s, &t)
ans := 0
for i := 0; i < 3; i++ {
if s[i] == t[i] {
ans++
}
}
fmt.Println(ans)
}
B - Power Socket
これむずすぎた。
package main
import "fmt"
func main() {
var a, b int
fmt.Scan(&a, &b)
ans := 0
socket := 1
for socket < b {
socket--
socket += a
ans++
}
fmt.Println(ans)
}
C - Lower
最後にfmt.Println(max(ans, tmp))
とかしてるのがあんまりいい感じじゃない……。
package main
import "fmt"
func main() {
var n int
fmt.Scan(&n)
hs := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Scan(&hs[i])
}
ans := 0
tmp := 0
for i := 0; i < n-1; i++ {
if hs[i] >= hs[i+1] {
tmp++
} else {
ans = max(ans, tmp)
tmp = 0
}
}
fmt.Println(max(ans, tmp))
}
func max(x, y int) int {
if x < y {
return y
}
return x
}
D - ModSum
13
-> 78
のサンプルケース見て「あっ・・・」となった。
package main
import "fmt"
func main() {
var n int
fmt.Scan(&n)
fmt.Println(n * (n - 1) / 2)
}
E - League
別途書く。
Rubyで指定範囲の第一営業日の曜日をカウントするやつ
月初作業が何曜日にあるのか調べたくて書いた。
たとえば、2019/09/01
から2100/12/31
までに、第一営業日(月初)が各曜日でどれだけあるかをカウントする。最終的には曜日だけカウントしてるけど、他のこともできるように日付も持った配列を作ってる。
結果としては当たり前だけど月曜日が多い。
require 'date'
def wday(date)
w = %w(日 月 火 水 木 金 土)
youbi = w[date.wday]
if youbi == "日"
date += 1
elsif youbi == "土"
date += 2
end
return [date, w[date.wday]]
end
arr = (Date.parse('2019-10-01')..Date.parse('2100-12-31')).select{|d| d.day == 1}.map{|d| wday(d)}
p arr.map(&:last).group_by(&:itself).map{|k, v| [k, v.size]}.sort_by(&:last).reverse
=> [["月", 418], ["水", 140], ["火", 140], ["木", 139], ["金", 138]]
ssh-copy-idコマンド
公開鍵を接続先ホストのauthorized_keys
に追加するためのssh-copy-id
コマンドがあることを知った。