おはようございます。 突然ですが、競技プログラミングなるものを始めてみようかと思い、ちょうど弊社ブログがあったので、投稿していくことに…

いきなり競技プログラミングと言われましてもなんぞやと思う方が多いと思いますので、簡単に説明します。 競技プログラミングとは、問題が出題されるので、いかにその問題をプログラミングを使って早く、制限時間内に解決することです。

AtCoder

今回は、ものすごい難易度の高い問題を扱うコンテストや、初心者向けのコンテストまで幅広く扱っているAtCoderさんで、新規登録を行い簡単な過去問を説いてから、次回の投稿では、初心者さん向けのコンテストであるAtCoder Beginner Contestに参加するまでを投稿していこうかと思います。

私も初心者ですので、とにかく登録も全部無料だしやってみるか!という軽い気持ちでやっていこうかと思ってます。あんまり重すぎると続かないですからね。(何度挫折したことか…)

では、初回は過去問を解きます。(いきなりコンテストに参加しても撃沈するのがオチらしいと、SNSの競技プログラミングの先輩たちが申しております故…あしからず…)

ちなみに、言語はPythonで解きます。本当はC++の方が実行速度も速いので良いらしいですが、昔少々勉強したことがあるのでPythonにします。これを期にC++勉強しようかなあ…

A – Welcome to AtCoder

高橋君はデータの加工が行いたいです。
整数 a,b,cと、文字列 sが与えられます。
a+b+cの計算結果と、文字列 sを並べて表示しなさい。

という問題ですね。 上記のリンクの方を飛んでもらって、入力の例や、出力時の仕方などが書いてあります。
なるほど、この通りに出力されるものをPythonで書けばよいのだな…ちょろいぞ….

考えてる時の私の間抜け顔。8年前修学旅行のお土産の品。当時首里城に行ったことを思い出します。火災は本当に残念ですね。

たぶんこんな感じです…ブログ書きながらやったので時間かかってしまいました。

# -*- coding: utf-8 -*-

a = int(input())
# 並列で2つ入力
b, c =(int(x) for x in input().split())
# 文字列入力する
s = str(input())

 
#結果
print(str(a+b+c)+ ” “+ s)

 

入出力結果はこんな感じでした。

11
22 33

INPROF!!

66 INPROF!!

ちょろいですねとか書きましたけど、二行目のb,cの入力方法は調べました。もうちょっとコンテストまでに過去問解いて、精進しようと思います。 最後に提出ページから提出して、無事通るか確認します。

無事通りました

結果が緑色のACなら無事できました、完了です。
コンテスト一連の流れはこんな感じになるらしいです。

 

まだコンテストに参加してないのでわかりませんが、流れはつかめたので、次回のビギナーコンテストに挑戦してきます。 基本的には、毎週末の土曜日曜日の夜に、コンテストが開催されてます。大手の企業さんが協賛して賞金(トップの人は数万貰える)が出るコンテストなどもあり、腕に自身のある方はぜひぜひ参加していただきたいです。

From M.K