週末副業記

土日は副業エンジニアのブログです。副業に関することを投稿します。

30日の学習の成果は?(AtCoder(競プロ)1日1問【30日目】【Python】【最終日】)


f:id:ml_begin:20180701232801j:plain

本日はAtCoder Beginner Contest 102の開催日
時間:20:30〜22:10
AtCoder Beginner Contest 102 - AtCoder

今までの練習の成果の検証です。

 

AtCoder30日毎日1問の成果

A問題とB問題は、練習の成果もあり解くことができました。
f:id:ml_begin:20180701205303p:plain

といいつつA問題間違えてひやっとしました。
f:id:ml_begin:20180701205221p:plain

B問題の方が簡単?あくまで個人の感想です。
f:id:ml_begin:20180701205239p:plain

 

C問題の解き方がわからず終了しました。

 

他人のコードで方法を学ぶ

他の人のコード見て、参考にします。

N = int(input())

input_list = []
index = 1
for i in input().split():
    item = int(i) - index
    input_list.append(item)
    index += 1

input_list.sort()
b = input_list[N//2]

print(sum(map(lambda x: abs(x-b), input_list)))
b = input_list[N//2]

配列の中央値を引くことにより、バランスよく引けることが可能ということが分かります。

 

結果

取り組む以前→以後で順位が上昇しておりました。
f:id:ml_begin:20180702065201p:plain
解くスピード上がったからだと思います。

 

感想

この30日間、A問題、B問題の問題を解いていきました。
解く過程で以下の点を学べました

・すごく簡単な問題だとしても毎日解き続けるのは難しい
Pythonらしい記法( ex: [ i for i in range(a) ] , lambda)
・理解しながらこなせば解けるようになる
・一ヶ月が早い


プロダクト開発に必要な技術の習得にも取り組んでいきますので、そちらも参考にしてみてください。

f:id:ml_begin:20180701232900j:plain

 

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

 
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 
Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理