あさの畑

プログラミングが好きな大学生のブログ。統計学や機械学習の勉強記録と、SIGNATE/Kaggle/AtCoderのお話。

AtCoderはじめました。「AtCoder Beginner Contest 118」の結果!

どうも、こんにちは。あさです。ブログを更新するのめちゃくちゃ久しぶりですね。はてな様から「お元気ですか?」とメールをいただくほど(つまり1ヶ月以上)更新をしていなかったわけですが、それなりに元気です。

 

KaggleやSIGNATEに参加したり、論文や技術書を読んだり、大学のテストがあったり、なにかと忙しい日々を送っていました。それにともなって、ブログ更新の意欲があまり湧いてこなくて記事を書けていませんでした…。

 

でも今日は書きます!急に書きたくなったので!何についてかというと、プログラミングコンテストのAtCoderに初参加してみたので、簡単にまとめておこうと思います。

 

AtCoderとは?

先日少し話題になっていたこちらの記事がAtCoderの問題やレベル分けなどについて詳しく書かれています。

chokudai.hatenablog.com

 

「AtCoder Beginner Contest 118」の結果

2月16日に行われた「AtCoder Beginner Contest 118」に参加して2問正解できました!コンテスト開始の2時間ぐらい前に急いでユーザー登録をして、とりあえず一番最初のチュートリアルをして挑みました(この時に、標準入力はinput()で受け取れるということを知った…。明らかに準備不足!)。

 

初心者向けだからもっと簡単なのかと勝手に思ってましたが(←いやいや過去問見ておけよ!)、C問題とD問題はさっぱりわかりませんでした。まだまだ時間は残っていたのですが途中で試合放棄…。

 

参考までに僕が書いたコードを載せておきます。まだまだ全然きれいなコードとは言えないですし無駄も多いです。

(問題はこちらから。https://atcoder.jp/contests/abc118/tasks

 

A問題

a, b = input().split()
a, b = int(a), int(b)
if b % a == 0:
  print(a + b)
else:
  print(b - a)

 

B問題

people, foods = input().split()
people, foods = int(people), int(foods)
 
all_like = []
for i in range(people):
  a = input().split()
  num = int(a[0])
  like_str = a[1:]
  like = [int(j) for j in like_str]
  all_like += like
 
output = 0
for food in range(foods):
  if all_like.count(food+1) == people:
    output += 1

 

これから復習します。ちなみにプロフィールページはこんな感じになりました。

f:id:gadada:20190218204510p:plain

 

最後に

時間を意識して頭を動かしたりプログラムを書いたりすることが普段はほとんど無かったので新鮮でしたし、楽しめました。これからもぼちぼちやっていこうかなと思います。

 

あまり周りと順位などを比べすぎると僕の場合は消耗してしまうことが最近分かったので、KaggleやSIGNATE、AtCoderとは適度な距離感を持ちながら、自分のペースで進めていけたらなと思っています。