LoginSignup
rodtang
@rodtang (* ロッタン)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

コーディングテスト模試(Python)の模範解答が欲しい。

解決したいこと

初心者ですがエンジニアを目指している学生です。

数年後に就活がやってくるのでいろんな企業のコーディング試験の対策を今からしておきたいと思っています。

ゆめみさんという企業のコーディングテストの模試を見つけて面白そうだなと思いPythonでやってみたのですが、手こずってしまいました。模範解答がなかったので、もやもやが残ってます。(Rustで解いた人はいるみたい)

どなたかPythonで解いてみていただけないでしょうか?Pythonでの模範解答が欲しいです。

エラーハンドリングやリーダブルコードの意識が評価のポイントになる企業も多いので、
できれば現役のエンジニアの方々のコードを見てみたいです。お時間あればよろしくお願いします。

実際の模試の問題(ページ中盤あたりから)
https://yumemi.co.jp/serverside_recruit

Rustで解いてみた人の模範解答
https://zenn.dev/belle/articles/eadeeabe6f4d1a

0

1Answer

Qiitaで検索すると解答例がみつかりますよ。

模範にならないべた書き例:

import sys

scores = {}
for line in open(sys.argv[1]).readlines()[1:]:
    timestamp, player_id, score = line.split(',')
    scores.setdefault(player_id, []).append(int(score))

ranking = sorted([(player_id, int(sum(score) / len(score) + 0.5))
                  for player_id, score in scores.items()], key=lambda r: -r[1])

print('rank,player_id,mean_score')
last_score = -1
for i, (player_id, score) in enumerate(ranking, 1):
    if last_score != score:
        last_score = score
        rank = i
        if rank > 10:
            break
    print(rank, player_id, score, sep=',')
1

Comments

  1. @rodtang

    Questioner
    ありがとうございます!Qiita内での検索はまだしてませんでした!参考にさせていただきます。
  2. 本日、記事が1つ増えましたね。
    私のコードにバグがあったので修正しました。
  3. @rodtang

    Questioner
    教えていただきありがとうございます!
    人それぞれのやり方があると思うのですが、このようなテストはshiracamusさんのように手続き型で短いコードを書いていくほうが良いのか、他に記事を上げていらっしゃる方のように関数型であったりオブジェクト指向を意識して書いていった方が良いのか、どちらが好ましいのでしょうかね??自分としては手続型で書きたいなと考えているのですが。。。
  4. 模試ページに書いてあるように評価観点とアピールポイントを言えればどれでもいいと思いますよ。
  5. @rodtang

    Questioner
    承知しました、ありがとうございます!参考にさせていただきます。

Your answer might help someone💌