fc2ブログ

Paiza Bランク問題が普通に解けた話

2020.11.25 16:32|プログラム
大学の頃から余りプログラム書くの得意じゃなくて懸念してたんだけど
一種の壁だったC->Bがあっさり突破できてびっくり

問題によるんだろうけどPython使って表現できる幅が広がると必然的にランクが上がりますね
多分知らないことをやろうとするとCランクにまた戻るんだと思う
基本のFor文とIf構文を複数組み合わせるのは全然問題ないかな

どちらかというと国語の問題で日本語が読めるかどうかになってきた


まあ研究のプログラム普通に多重で組んでたし・・・、できないはずはないとは思ってたけど・・・
日本語の問題だったかと思うとなんか嫌だわ


■今日しったこと
print( any + ":" any)
で数字と文字列を表示させようとするとエラーを吐かれる
->INT型とSTR型で不一致が起きているため
そりゃそうだわ、なんか行けると思ったけどそりゃそうですわ

"{:02d}".format(any)
->2桁で揃えよう!、formatを使いこなせれば0埋めで困ることは無くなると思う

長テーブルのUNAGIYA問題

2020.11.23 22:41|プログラム
解けた、2時間かかった、超がんばった
コードは追記で折りたたんでおく

■悩んだところ
・長テーブルの処理、座席数を超えたら1席目に戻ってくる処理
・席がばってぃんぐした時の退店処理
・退店処理後人数が残っていた場合回りすぎてしまう問題


■解決方法
・長いテーブル処理
->座席数超えた時、越えなかったときでif処理を分けた、それだけでいけたはず

・退店処理
->1人の時の退店処理がうまくいかなかったから、1人の時はbreak処理を入れた。
->複数人の時はrange(1,人数)でぶん回して現在の座席ポジションからさかのぼって座席を空席にした

・回りすぎ問題
->退店処理が発生した時のカウンターを設置した、退店処理カウンターが1以上の時そもそもif文に入らないようにした
break置いたからこのカウンターいらなくない?
いらなかったわ
処理入った後そもそもfor文をぶっ飛ばすようにbreak入れてたはずだから当然いらないですね

■感想
こんなんぜってーとけねーわって思ってた3ヵ月前の僕!解けましたよ!!!
解けるのはよろしいのですが、時間がかかりすぎたのと100点とるまでに10回ぐらい提出して直してを繰り返しました。

■今後の課題
・手を動かしてパターン慣れする事
->時間かかりすぎなのでパターンを覚えましょう
・提出する前のテストをちゃんと考えましょう
->正直なところ今は手を抜いてる、間違えたなら直せばいいやって感じでセルフチェック飛ばしてるので直した方がいいかも
今回は、組んでる途中で間違えてるのここだろうなっていう予想が立ってたからなんとかなった
・コードが汚い
->まだ解ければいいで大丈夫な気がする、そもそもコードレビューをしたこともしてもらったこともないので
入社時にOJTで教えていただいてからきれいなコードというのを覚えた方が理想的なんじゃないんですかね
 自分が見直したいからコメントは残すことにする

続きを読む >>

エレベーターの移動距離を測るみたいな問題

2020.11.23 15:43|プログラム
20分程度でできた

よかった。

■悩んだ所
繰り返し標準入力する箇所を脳死で
for i in range(n):
a = input()
と入力する癖がある、大体これでなんとかなってはいるがダメなときはどうしようと少し悩むことになる

■解決策
今回の問題だと隣の要素同士の引き算した結果を別に格納する必要があって
この前仕組みを覚えたappend()を使うことで対応できた

でも、もう少しうまくできたんじゃないかなと思う所はある
最初は1階いるのがデフォだったから、listに'1'を先頭に追加して処理開始でもよかったかもしれない

Pythonでポーカーを作る問題があった

2020.11.22 16:35|読書感想文
出来ませんでしたので、色々調べて他人のソースコード拝見しました

下記参照コードのURLです。
みやびの.py Pythonでポーカーゲームを作成する~ポーカー作成講座1~
Git hub [miyabikno / pythonista-poker]

■条件
・数字のみ
・4カードのみ

■うまくいかなかった原因
フラグ処理の問題、Four CardとTwo Pairの認証がうまくいかなかった。
->うまくフラグの処理わけが出来ていない

{’1113’}みたいなリストだとThree Cardとして認識するが、{’1333’}だと認識してくれなかった。
->for文の中身が if [0] == [i]にしてしまってて、結局最初のカードとの比較だけで動いてしまっていた。
 ソートを挟んでいたから一応頭順からのThree Card と Four Cardは問題なく認識する形にはなっていた。

■感想
この問題のキモは違うカードを認識した時に『同じ数字カウンターを0にしてPairカウンターを + 1』にすることなのかな?
もうちょっとカウンターを用いたif文処理だとかfor処理だとかを勉強しないといけなさそう。
後は30行超えると何が何してるのかたまにわからなくなって、処理ロジックを何度も確認することが多かった。
コメントをちゃんと残す?

考えすぎてた性かなれないロジックだったのもあるかもしれない
実装はできそうだけど・・・なぜかできん!状態が3時間ぐらい続いて諦めて調べたのは悔しい・・・ですね・・?
流石に3時間考えてわからないなら調べて正解だと思うけど

sliceについて

2020.11.21 16:15|プログラム
C言語とかでfor文を作るとき
for i = 0; i<10; "i++"


をPythonでやろうとすると
for i in range(***) になると思うんですけど
これiを減算処理はできないんですかね?

range()が厳密には減算というよりかはスライスカウント?っていうんですか?
0から該当する数まで増やしていくっていう実質++と同じことしてるので、逆のパターンもあると思うんですよね

ありました、reversed関数というものがあるらしいです
今色々試してみたんですけど、リストの逆順で出す関数らしくint型の数字を逆順にやっていただけませんでした


本質的にやりたかったことは文字列を逆順に表示するっていうだけなので
スライスを使って[::-1]とかしてやれば一発で表示できますね。
僕は知らなかったので配列に入ってる文字列を新しく逆順に格納して表示するプログラムを作りました

こういう所はC言語のテキストで結構やった個所で記憶によく残ってますね


Pythonは繰り返すときのカウンタ処理を考えなくていいから楽ですが、減算カウントは少し考えないといけませんっていう豆知識を
検索中に見かけたので、きっとこういうことなんでしょう

とりあえず今日は以下の事を記憶にとどめておきたい
xxxx[::-1] リストの後から順番に全部表示する(逆さ文字になる)
xxxx[-1] ケツから表示する、最後尾を表示する
xxxx[-1:x] ケツからX版まで出す

後初期化した空白リストに文字列を代入するときは
box[i] = text[i]
とかじゃなくて、
box.append(text[i]) で入れることが出来るので頭に入れておきたい

pythonのlistを使った問題

2020.11.17 21:07|プログラム
なんかpython独特の問題があってMATLABのときのように簡単に行かない

①普通に計算すると小数点が出てくる
C言語とか小数点出てきたっけ?%dで表示するから基本でてこないよね
Pythonは何も考えずにやると小数点で割り切れるまで表示する、はっきり言ってうざい
round関数やらmathライブラリのfloorで小数を切り捨てる工程が入る
%dで慣れてしまった弊害かな?そのうちなれるだろう

小数点を切り上げたくなったらround関数を使う
小数点を捨てたくなったらmath ライブラリを読み込んでfloorを使う

②リストがよくわからん
リストを理解したつもりなんだが偶にリストの扱いにバグが生じる
C言語みたく要素を作って枠にぶち込む考え方をすると間違いなくエラーを返してくる
c[10]とか作っておいてi++のfor文回してc[i] = aを入れ続けるとかをPythonでやるとエラーを返してくることが多い
appendやらinsert(場所、"内容")をちゃんと使えるようにしておいた方がいいのかもしれない

Pythonは基本わかったつもりでも本当に変なところで引っかかって難しい
10進数を2進数に変換して該当ポジションを読み出す問題を解いてたんですけど、みんな20分程度で解いているらしく
私50分近くかかってるんですよね、C言語のほうが楽に解けたのでは?

C言語はC言語でライブラリが貧弱すぎて一々ロジックを作らないといけなくなるので逆にめんどくさくなるっていう
ソートとかあそこらへんですね
まあ経験だろうから諦めずにガリガリ毎日解いていくことが慣れへの近道だろうとは思う
本当に解けなかったらロジックが出てこないはずだし、ロジックが思い浮かんでるけど表現に手間取ってるだけなら
まだ見込みがありますね、ただ時間がかかりすぎるのが問題か・・・。

お勉強タイムの話

2020.11.12 21:27|プログラム
中学高校の時みたいに毎日20時から22時までは絶対に勉強をすると心に決めたんだ

勉強時間普通に足りないししょうがないと思う、そもそも集中力もそんなに持たないし
でもプログラムの問題を解いてるとそんな一日に何問も解けないよね

なのでわからなかったこととまた今度試すことをメモすることにしたよ、アウトプットですね


■課題点
少数3桁程度の掛け算をした後整数を引くと少数第8位ぐらいの数値が意味不明な減り方をしていて
計算結果がずれる

■試したこと
round関数を用いて少数3桁を切り上げた

■結果
幾つかの問題はクリアしたが、幾つかの問題はNGだった

■次やること
有効桁数を処理しつつ計算する方法が必ずあるはず
よくある原因としては初期化の不具合だが、もう一度初期化も確認してみる

こんなのも解けないのかと悲しくなりそうだったのは内緒
解答時間30分程度

SESはダメだった

2020.11.12 13:53|現実逃避日記
マジでやってくれたな現職って感想しか出てこない

未経験が足かせになりすぎて転職先が決まらなさすぎる。


2年半近く評価業務で塩漬けにされ、3年目も評価になったから会社を辞めるのはいいとして。
次の転職先が決まらないのは本当にまずい、ニートまっしぐらや
SESの沼に使ったら一生SESか?この業界マジでえぐいな

SESで働くのはいいんだが、技術身につかねーわ案件ガチャで本当にどうしようもないんだよな
人材投資すらしてくれないからまじ家畜だよこれ



| 2020.11 |
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -
何なのか未定

プロフィール

がぁちゅ/終葉

Author:がぁちゅ/終葉
MapleStory:罪焔がぁちゃ
LaTale:終葉(ついのは)
Mabinogi:終葉(しゅうは)
PaperMan:うにぅぃ
FEZ:終葉(おりば)
MabinogiHeros:森のごりらさん
-↑引退済み 現役↓-
FFⅩⅣ:Oriva Hawaian
Dota2:oriva

リンク

ツイッター

FC2カウンター

最近の記事

カテゴリー

最近のコメント

過去ログ

ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示

【向日葵の教会と長い夏休み】応援中!
ページトップへ