読者です 読者をやめる 読者になる 読者になる

Psycho-Logic

Psychology, Programming, and occasional Rat.

Python3 DAY9:リストのint型への変換と関数の使い方

Python3
今までストックしてきたpaizaスキルチェックの記事が全部ポシャったので、1からレイアウトやフォーマット(タイトルや構成)を考え直すのにすごく手間取っている今日このごろ。
皆さんいかがお過ごしでしょうか。
 
今回は、
 
「標準入力に半角スペース区切りで渡される3つの数字から、最も大きな値を出力する」
 
というpaizaのスキルチェックの問題で引っかかった部分について、最初に考えたコードを見ながら触れていきます。

Python3 DAY8:sort()メソッドについて

Python3
今回はリスト内の要素を並び替えるsort()メソッドについて。
 
「入力された値の最大値と最小値を出力」
 
このような処理は誰しも経験があるのではないでしょうか。
方法は様々でしょうが、私が最初に思いつくのは
 
「入力されたものを1つのリストに格納して、リスト内要素を並び替えて最初と最後のインデックスを参照して出力」
 
というものです。
しかし、sort()の返してくる謎の Nonesorted()との違いなど、思わぬところにつまずきました。

Python3 DAY7:paizaスキルチェック「ワインのキャッチコピー」

今回問題は「標準入力に半角区切りで渡される2つの文字列を、”Best in”という言葉と半角スペース区切りでつないで出力する」というもの。
回答までにかかった時間は2分52秒。
正解のコードはinput()含めたったの2行だけなので、今までで一番単純だったと思います。
勘違いというバグがなければ。
 

最初のコード

 
input_lines = input()
phrase = input_lines.split(" ")
print("Best in" + phrase[0])
print("Best in" + phrase[1])

 

問題を知っている人はすぐに気づくと思いますが、これは完全に勘違いというか、思い込みによる誤答です。
期待される出力を改めて確認すると、
 
「標準入力で渡された2つの文字列を”Best in”に半角スペースを入れてつなげる」
 
というものです。
(つまり、標準入力の前に"Best in"と半角スペースを加えるだけです。)

1つ目の問題点

 

phrase = input_lines.split(" ")

 

これは、「今までそうだった」という理由で半角スペースでsplit()をしてしまいました。思い込みに起因する間違いです。
 

2つ目の問題点

 
print("Best in" + phrase[0])
print("Best in" + phrase[1])
 
こちらも
 
「“Best in”につなげた2つのキャッチコピーを改行して出力」
 
というものだと思いこんでいたことが原因の間違いです。
言い訳をさせてもらうと、問題文に「良いキャッチコピーを考えるため、とりあえず「〜の中で最高」というフレーズを色々作ってみることにしました。」という記載があったからそういうものだと思って…
 
 
今回は技術的な問題ではなく、
 
「問題文(仕様)をしっかり読みましょう」
 
というお話です。
そこまで含めて技術なのかしら…。

Python3 DAY6:paizaスキルチェック「かまくらづくり」

Python3 paiza
今回の問題は
「標準入力で渡されるr1m(1辺の長さ)の立方体から、r2m分の立方体をくり抜いたときの体積m^3を出力せよ」
というもの。
(大雑把に説明すると、何が何やらわかりませんね…)
回答までにかかった時間は8分35秒。
コード自体はすぐに思いついたのですが、思いもよらぬところで時間を食いました。

Python3 DAY5:paizaスキルチェック「AボタンとBボタン」

Python3 paiza
今回挑戦した問題は
「標準入力で渡される A,B から、Aの分だけマスを進み(座標+1) B の分だけ戻る(座標-1)場合の座標位置を出力する」
というもの。
こちらはキャンペーン(Amazonギフト券プレゼント)の問題のようです。

f:id:Mantra:20170213161445p:plain

Python3 DAY4:paizaスキルチェック「プレゼント選び」

Python3 paiza
今回の問題は、
「標準入力で1行目に渡される成績に応じて、2行目の3つのプレゼントから適切なプレゼントを選択して出力せよ」
というもの。
回答までにかかった時間は10分21秒と前回と同程度。
しかし、今回は初めてスコアが100点ではありませんでした(なんと40点…)。
そこも含めて確認していきたいと思います。

Python3 DAY3:paizaスキルチェック「トランプ占い」

Python3 paiza
今回の問題は「J,Q,Kのうち2つがランダムに入力として渡され、J,Jの組み合わせのときだけ2つめのJをQとして出力しなさい」というもの。
回答までにかかった時間は10分22秒で、少しだけ感覚がつかめてきた気がします(気がします)。
しかし、今回もミスをしては訂正の繰り返しだったので、パンドラ(理解不足)の箱を開けていきたいと思います。