新人女子プログラマの書いたコードを直すだけの簡単なお仕事です! ←やってみた(Python)〜Part2〜
画像の出典:paiza
https://paiza.jp/poh/ec-campaign
改善した
今回は少しだけ改善してみた。
[100, 200, 250, 120]
こんなデータを真面目にループで回すとIn [42]: for i in [100, 200, 250, 120]: ....: for j in [100, 200, 250, 120]: ....:こんな感じになるわけだけど
最初のiとjの組み合わせがi=100, j=100
さらに、i=100, j=200、i=100, j=250、i=100, j=120、i=200, j=100
と続くわけだけど、i=200, j=100の組み合わせって、i=100, j=200と同じだからいらないよねって考え。
ようは、j=i+1から始めようって事。
同じ商品を選んじゃいけないので、iは120の行わない。# python 2.7.3 import sys prices = [x.rstrip() for x in sys.stdin] N, D = [int(x) for x in prices[0].split(' ')] m_s = [int(x) for x in prices[N+1:]] prices = [int(x) for x in prices[1: D * -1]] for n in xrange(D): result = 0 for i, x in enumerate(prices[:-1]): for y in prices[i+1:]: total = x + y if total <= m_s[n] and result < total: result = total print result結果
画像の出典:paizaお、Case1クリア
王大人「Case2で死亡確認」
画像の出典:paiza
https://paiza.jp/poh/ec-campaignkaeroukaさん、、すごーい。
かわいい。
Case2、Case3とクリアしていったら、服も1枚ずつ減ってったりするんだろうか。
次回は2分探索でチューニング予定。
Case3もクリアできたら嬉しいけど、どうだろう。前回
新人女子プログラマの書いたコードを直すだけの簡単なお仕事です! ←やってみた(Python) - Tips
続き
新人女子プログラマの書いたコードを直すだけの簡単なお仕事です! ←やってみた(Python)〜Part3〜 - Tips