😀
ABC_AB問題2つを解いてJuliaに慣れる
Juliaをやらないといけなくなった
仕事でJuliaを使えればいいよね、という話になり、インストールにすったもんだしたものの、職場と自宅のPCにようやくJulia1.5.3をインストールできました。
今日は雨だし、AtCorderのABCのAB問題を解いて、Juliaに慣れていこうと思います。
出場した覚えのないコンテストを適当に2つかいつまんでいます。
ABC189
A_Slot
stringが同じ文字でできているかどうかを判定します。
Juliaのインデックスは1始まり。String
を読むとPython同様にインデックスで単語にアクセスできます。
c = readline()
if c[1] == c[2] == c[3]
println("Won")
else
println("Lost")
end
B_Alcoholic
繰り返しとifの練習。
アルコール度数を小数にして計算しただけでWAが7つ出ました。
型回りはまだ不慣れです。
x -> hoge()
はJuliaの無名関数です。
function main()
n,x = readline() |> split .|> x -> parse(Int, x)
x = x*100
drink = 0
ans = -1
for t in 1:n
v,p = readline() |> split .|> x -> parse(Int, x)
drink += v * p
if drink > x
ans = t
return println(ans)
end
end
println(ans)
end
main()
ABC174
A_Air conditioner
もっとコンパクトにかけるんだろうな、と思いながら、反射力を鍛える方を優先しています。
function main()
x = readline() |> x -> parse(Int,x)
if x >= 30
println("Yes")
else
println("No")
end
end
main()
Pythonならこうなのに…。
print('Yes') if int(input()) >= 30 else print('No')
B_Distance
Juliaの関数は簡単に書けるらしいので、distanceを求めるのにその書き方をやってみます。
dist(x,y) = (x^2 + y^2)^(0.5)
function main()
n,D = readline() |> split .|> x -> parse(Int, x)
counter = 0
for t in 1:n
x,y = readline() |> split .|> x -> parse(Int, x)
d = dist(x,y)
if d <= D
counter += 1
end
end
println(counter)
end
main()
おわり
公式Documentのどこを見たらいいかがわかってきたので、C問題に移ります。
end
を書かないといけないので、ぱっと見のコードが長くなるのが少し気になるところです。
Discussion