パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

プログラムの問題 仕様変更でひっかかる

2023-01-18 | 新規1000万人ぐらいにプログラムをマスターしてもらいたい

軽く一問、解いてブログにでもとはじめたら、わりと沼に入る。

プログラムの学習で仕様変更の連続でやめちゃう人ってけっこういるのかなとか思う

 

プログラムの言語自体、コンピュータとなんとか会話しやすくしようとした苦難の歴史っぽい

ところがあって、これをなんとかしようとするためにこれを追加とかを繰返していて

全体刷新したいけど、既存との共存でこの文字を暫定的に利用とかいうトラップがある

 

そんな斬新な問題

https://www.codingame.com/training/easy/saving-snoopy

 

問題文を翻訳かけて読んでも、最初サッパリわからない感が果てしない。

分かる所からコーディング開始、文字を辞書で置換するところから…

+は無視して、*はスタック最期の文字を表示、その他はスタック(置換対象なら置き換えて)

よし終わったと思ったら

75文字未満でうまく改行しないといけない

対応には今回一番ハマった。(下28から39行目)

 

それでも最期2問が表示がおかしい。

斬新なのはテストケースの解いた問題の答えの文が追加仕様になっていること

(google翻訳にかけても75文字改行をもどさないと意味がわからない)

 

#と%の仕様を後から追記することに、しかも優先順位が高いので順番も再検討という

普通のシステム開発でもはまるケースを意図的に作り込んでいる(対応は7から20行目)

 

解く方にはたまったものではないが、たぶん名作

簡易言語の初歩の初歩ぐらいの問題

 

スヌーピーを救うのも楽ではない

他の方の解答だと追加仕様もスッキリと落とし込んでいて

まだまだだなあと思う


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。