M-SOLUTIONS プロコンオープン 2020見直し
全体の感想
今までで、最も出来た。
Aでいい感じの解答が出なかった時は、今日はダメだなと思ったんですが、開始1時間でDまで解答でき、Eは解法が全く思いつかなかったので、諦めFもサンプルは通すことができました。実際回答してみると「WA」があったのでイマイチな解答なんですが、そもそも初めてF問題に挑戦することができました。また、今回初めて茶色になりました。
A - Kyu in AtCoder
M 君は AtCoder に参加している選手の 1人です。彼の最高レーティングは
Xです。AtCoder では、最高レーティングに応じて選手に級位が与えられます。
級位はレーティング400から1999について以下のルールで付けられています。
400以上 599以下:8級
600以上 799以下:7級
.
.
1800以上 1999以下:1級
作成した解答(Python)
x = int(input())
if 400 <= x < 600: kyu = 8
if 600 <= x < 800: kyu = 7
if 800 <= x < 1000: kyu = 6
if 1000 <= x < 1200: kyu = 5
if 1200 <= x < 1400: kyu = 4
if 1400 <= x < 1600: kyu = 3
if 1600 <= x < 1800: kyu = 2
if 1800 <= x < 2000: kyu = 1
print(kyu)
単純に条件を並べました。以下の様にすると大量の「if」を書かなくても良いです。
解説を見て作成した解答(CPP)
#include <bits/stdc++.h>
using namespace std;
int main() {
int x;
cin >> x;
cout << 10 - x/200 << endl;
}
「x」を整数除算すると以下の様になります。
400以上 599以下:整数除算すると2(解答は8級)
600以上 799以下:整数除算すると3(解答は7級)
.
.
1800以上 1999以下:整数除算すると9(解答は1級)
上記より、(10 - x/200)で級位が出せます。これは最初に気付きたかったところ。。。残念。
この記事が気に入ったらサポートをしてみませんか?