見出し画像

M-SOLUTIONS プロコンオープン 2020見直し

全体の感想

画像1

今までで、最も出来た。
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)で級位が出せます。これは最初に気付きたかったところ。。。残念。


この記事が気に入ったらサポートをしてみませんか?