プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

4
休日の頭痛
警告:この投稿から医学的なアドバイスをしないでください。医学的なアドバイスが必要な場合は、資格のある専門家に相談してください。 頭痛がします。頭痛薬が必要です。 私が最後に服用した数回の投与量をお伝えしますが、過剰投与せずに次の投与量をいつ投与できるかを教えていただきます。 この文字列を提供します。 P: 00:00, I: 02:00, P: 04:00, I: 06:00 そして、あなたは私にこれを与えます: Next P: 08:00, I: 10:00 入力: 次の形式で、各薬剤が服用された時間を表す文字列: P: 00:00, I: 02:00, P: 04:00, I: 06:00 これは、パラセタモールが00:00と04:00に服用され、イブプロフェンが02:00と06:00に服用されたことを意味します。 出力(更新): 次の形式で、各薬剤の次の服用時間を示す文字列: Next P: 08:00, I: 10:00 出力の順序は、薬を服用する順番にする必要があります。-イブプロフェンを09:35に、パラセタモールと10:22に服用する場合、出力は次のようになります。Next I: 09:35, P: 10:22 各薬剤の次の投与の時間が同じ場合、出力順序は重要ではありません。 Next P: 08:00, I: 08:00またはNext I: 08:00, P: …
14 code-golf  string  date 

20
出力キーストローク
任意のプログラミング言語で、入力を受け取り、キーボードで入力されるテキストをアニメーション化するプログラムを作成します。 キーボードでの真のタイピングをシミュレートするには、各文字間の遅延を変化させる必要があります。遅延は0.1, 0.1, 0.5, 0.1, 0.1, 0.5 ...、最後の文字が印刷されるまでの秒数です。最終出力は画面に残されます。 テキストを新しい行に印刷できないようにするには、現在のテキスト行を上書きする必要があります。 例、入力 "Hello、PPCG!Goodbye Earth!" 次のアニメーションが生成されます(gif-makerのサンプリングレートが低かったため、実際の結果はわずかに異なります)。 これはコードゴルフであるため、バイトの最小量が勝ちます。

13
永続的に自己修正するコード
現在、ほとんどの言語にはコードを「自己修正」する非常に簡単な方法があることがわかっています。ただし、実際にコードを変更してその一部をディスク上で編集する場合はどうでしょうか? あなたの目標は、数字を出力するコードを作成し、フィボナッチ数列の次の数字で数字を置き換えるように独自のファイルを編集することです: $ ./program 1 $ ./program 1 $ ./program 2 $ ./program 3 $ ./program 5 [etc...] ルール コードの「外側」に番号を保存することはできません。コメントなし、スクリプトに終了するよう指示せず、EOFなしなど コードが任意のファイル名で機能する場合、バイト量から2を引き$BYTESNOW ($ORIGINALBYTES - 2)、タイトルを記述します。(ファイル名は、任意の英数字ファイルパスの範囲内であると想定されます。) コードは、外部の配管支援なしで、出力をファイルに単独で書き込む必要があります。 コードは1または0から開始できます。関係ありません。

6
KeyPad Code to Text!
入力として文字列と配列が与えられた場合、タスクは、典型的なモバイルキーパッドで入力されたときに入力文字列が印刷するテキストを出力することです。モバイルキーパッドでは、ボタンをn回押すことで文字が入力されます。nは、ボタンのラベル上の文字の位置です。したがって、22出力する必要がありますb。 ルール ヘルパー配列には文字マップ([" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"])が含まれます。これはいくつかのバイトを節約するために与えられます。 #シンボルは、ケースを切り替えます。最初のケースは低くなります。だから、2#3出力すべきaD。 0スペースを追加します。したがって、202出力する必要がありますa a。 入力文字列には、同じ数字ボタン上にある新しい文字を開始するためのスペース()があります。aa入力例では、入力文字列はになります2 2。 入力文字列は常に有効なキーパッドコードであることが保証されています。 入力 あなたの言語がサポートするどんな方法でも入力を受け取ることができます。 出力 結果は任意の方法で出力できます。機能returnも許可されています。 テストケース #4440555#666888330#999#66688111 -> "I Love You!" #6#33777 7779990#222#4477744477778627777111 -> "Merry Christmas!" #44#27 79990#66#3390#999#332777111 -> "Happy New Year!" これはcode-golfなので、バイト単位の最短コードが勝ちです!

7
もうすぐクリスマス!
このため、世界中の家族がクリスマスツリーを構築しています。 しかし、この通常のツリーはしばらくすると退屈になる可能性があるため、ASCIIツリーを作成しましょう。 リーフはで表され#、出力例に示すように配置する必要があります。5つのボール(O)と5つのキャンディー(J)があり、これらをツリーの周りにランダムに配置します。また、上にろうそくがあります。 入力:なし 出力: ^ | ### ##O## ####### ##### ####J## ######### ####O###### ############# ###J### ######### ####O###J## #######O##### ###J########O## ###########J##### ### ### ルール(ルールに含まれていない場合、できると仮定) ボールとキャンディケインは木の上にランダムに置かれ、対角線を数えないで少なくとも1つの葉がそれらの間になければなりません。 各葉には、ボールまたはキャンディケインを獲得するゼロ以外のチャンスが必要です。 ツリーが適切な形状である限り、各行に先頭または末尾のスペースが存在する場合があります。 これはcode-golfなので、文字の中で最も短いコードが優先されます。

1
サンフランシスコのタクシー
あなたはサンフランシスコのタクシー運転手です。タクシードライバーの典型であるように、移動できる有効な方向は左、右、上、下のみであるグリッドをナビゲートしています。ただし、サンフランシスコは非常に丘が多いため、2つの隣接する交差点間の距離は必ずしも同じではありません。より具体的には、高度aでの交差点と隣接する高度での交差点間の距離bはになります1 + |a - b|。あなたの目標は、地図の左上の出発地から右下の目的地までの最短経路をすべて見つけることです。 入力 最も便利な形式の整数高度の2次元グリッド(2次元配列、幅や高さを持つ1次元配列など)。 出力 最短距離高度の二つの隣接する交点間の距離与えで左上から入力の右下隅に到達する旅行への方向の配列aとbの式で与えられます1 + |a - b|。複数のソリューションがある場合、すべてのソリューションを出力します。 私が使用していますがU、D、L、およびRアップのために、下、左、右、それが中に、すべての入力間にそれらと一致しているとして、方向を表すために、任意の4つの別個の文字列を使用することができ、あなたのプログラム以下の例インチ 例 Input: 0 3 0 0 0 0 2 0 2 0 0 0 0 3 0 Output: D D R R U U R R D D Input: 3 Output: <empty> Input: 11 11 11 …

6
シェルピンスキーの矢じり曲線を描く
前書き シェルピンスキーアローヘッドカーブの制限がシェルピンスキーの三角形であることを曲線です。 最初は次のように始まります。 _ / \ 次に、各行が最初の行の回転バージョンに置き換えられます。 _ / \ \ / _/ \_ 次: _ / \ \ / _/ \_ / \ \_ _/ _ \ / _ / \_/ \_/ \ あなたのタスク 数値nを指定すると、Sierpinski Arrowhead Curveのn番目の反復を出力します。 0インデックスまたは1インデックスを選択できますが、回答で指定してください。 画像を生成するか、上記の形式でAscii Artを使用できます。 この曲線を生成するためにビルトインを使用することはできません。 これはcode-golfであるため、バイト数が最も少ないコードが優先されることに注意してください。

9
codegolfオブジェクト
これを想像してください。1つのオブジェクトのみを含むグローバルスコープを持つ環境がありますcodegolf。このオブジェクトにはと呼ばれる1つの子があり、この子stackexchangeにはというプロパティがありますcom。 このプロパティへのアクセスは次のようになりcodegolf.stackexchange.comます。 チャレンジ プログラム/関数の入力は、グローバルスコープのプロパティにアクセスしようとする文字列になります。このプロパティが見つかった場合は常に、真実の値を印刷/返却するものとします。プロパティが見つからない場合、偽の値が印刷/返されます。キャッチ:存在しないオブジェクトのプロパティにアクセスしようとすると、プログラムはあらゆる種類のエラーをスローします¹。 物事を少し簡単にするために、入力は常に[a-z.]空であり、空になることはなく、繰り返しを持た.ず、で始まったり終わることはないと想定することができます.。だから、codegolf.無効な入力です。 テストケース codegolf.stackexchange.com => 1 // or any other truthy value codegolf.stackexchange.net => 0 // or any other falsy value codegolf.stackexchange => 1 codegolf.foo => 0 codegolf => 1 foo => 0 codegolf.com => 0 codegolf.constructor => 0 codegolf.foo.bar => Error (since foo is undefined) codegolf.stackexchange.com.foo …

10
ステガノグラフィックスクエア
ステガノグラフィックスクエア あなたの仕事は、文字列を取り込み、NxNこの文字列を表す画像を生成することです。また、画像を取り込んで、文字列に戻すアルゴリズムも記述する必要があります。スコアリングには、両方のアルゴリズムのバイトカウントが含まれます。 「暗号化」アルゴリズム+「復号化」アルゴリズム。 暗号化アルゴリズムと復号化アルゴリズムの両方のバイト数を個別に表示して、それぞれを個別に投稿する必要があります。 アルゴリズム例 たとえば、ブルーチャネルで単純なASCIIベースのステガノグラフィックアルゴリズムを使用した「プログラミングパズルとコードゴルフ」は次のとおりです。 #2e7250,#6ea972,#04eb6f,#0fc767,#74ab72,#ee6161 #b73b6d,#1aae6d,#f37169,#bda56e,#1fe367,#e99620 #706450,#0d3575,#146b7a,#4ea47a,#2a856c,#95d065 #3f2d73,#cef720,#bab661,#d1b86e,#f22564,#12b820 #0f3d43,#c86e6f,#1ee864,#a66565,#247c20,#c3bb47 #0e296f,#89d46c,#585b66,#c08f20,#455c20,#136f20 実際の画像() 青いチャネルがこの画像のascii値を保持していることがわかります。 50 = 80(P) 72 = 114(r) 6f = 111(o) 67 = 103(g) 72 = 114(r) 61 = 97(a) 6d = 109(m) 6d = 109(m) 69 = 105(i) 6e = 110(n) 67 = 103(g) 20 = 32( …


8
3x3ヘキサプライムスクエアパズル
3x3ヘキサプライムスクエアパズル 前書き 次のような3x3の16進数字(0〜F)を考慮します。 2 E 3 1 F 3 8 1 5 7 2 7 D D 5 B B 9 3x3ヘキサプライムスクエア(HPS3)を、左から右および上から下に読み取られるすべての16進数が奇数の素数(つまり2より大きい素数)である正方形として定義します。 これは、左の正方形ではtrue、右の正方形ではfalseです。 2 E 3 --> 0x2E3 = 739 1 F 3 --> 0x1F3 = 499 8 1 5 --> 0x815 = 2069 7 2 7 --> 0x727 = …

1
チェッカーズ:キングミー?
チャレンジ: チェッカーボードが与えられた場合、可能な限り最小の動きを出力し(黒がまったく動かないと仮定して)、可能であれば赤の駒をキングします。 ルール: 赤の側は常に下になりますが、それらの駒はどの列からでも開始できます(王の列であっても到達する必要があります)。黒のピースは静止しているため、赤の動きの間に移動することはありませんが、キャプチャされるとボードから削除されます。ピースはボード上の任意のスペースで開始できることに注意してください。これは通常のチェッカーの再生方法ではありませんが、プログラムでこれらを解決できる必要があります。(入力5を参照)ただし、チェッカーピースは斜めにのみ移動する必要があります(入力3を参照)。最初のキャプチャーがチェーンの前方にある場合、逆方向キャプチャーが許可されます(入力7を参照)。 入力: ボードスペースが次の文字として定義されている8x8チェッカーボード(一貫性がある限り自由に代替を使用できます): 。- 空の R-赤いピース B-黒い部分 出力: ボードの一番上の列(黒の側)の王の列に入ることによって「王」になるために赤い駒が必要な動きの最小数。赤いピースをキングすることが不可能な場合は負の数(つまり、黒が最初の行全体を占める)。 入力1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …

19
デューラーの魔方陣を作成する
チャレンジ デューラーの有名な魔方陣の配列または文字列表現を出力します。 あれは、 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 おそらく悪用される可能性があるこの正方形のいくつかのプロパティは次のとおりです。 から1までの各整数を161回だけ含む 各列または行の合計、および2つの対角線の合計は同じです。これは、魔方陣の定義プロパティです。合計は、正方形の魔法の定数です。 さらに、この特定の正方形では、4つの象限のそれぞれの合計も魔法の定数に等しく、中央の4つの正方形の合計とコーナーの4つの正方形の合計も同様です。 ルール 魔方陣を生成するBultinsは許可されていません(Matlab magicやMathematica などMagicSquare)。他の組み込み機能を使用できます。 コードはプログラムでも関数でもかまいません。 入力はありません。 数値は10進数でなければなりません。出力形式は通常どおり柔軟です。いくつかの可能性は次のとおりです。 ネストされた配列(関数出力、またはその文字列表現、セパレーターの有無にかかわらず、あらゆる種類の一致する括弧): [[16, 3, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]] 2D配列: {16, 3, …

10
最大の列からすべての数字を見つける
比較的簡単な課題を次に示します。 正の整数のリストが与えられた場合: それらをグリッドに並べ、各列を合計します。たとえば、入力がの[123, 7, 49, 681]場合、グリッドは次のようになります。 1 2 3 7 4 9 6 8 1 そして、各列の合計は次のようになります[18, 19, 4]。 1 2 3 7 4 9 6 8 1 -------- 18 19 4 これらの合計の最大値(この場合は19)を見つけてから、 この最大列と同じインデックスにあるすべての数字を出力します。この場合、それは 2 9 8 これらの番号を特定の順序で出力する必要はありません。4つの入力があったとしても、3つの出力しかありません。同点の場合、最も早いインデックスを選択します。たとえば、入力がの[25, 223, 302]場合、グリッドは次のとおりです。 2 5 2 2 3 3 0 2 ------- 7 7 …
14 code-golf  math  grid 

18
シャッフルアップとディール!
金曜日だから疲れたので、さっそくやってみましょう!何も入力しませんが、標準のカードデッキにある13枚の異なる番号のカードをすべて出力する必要があります。Ace(Suit agnostic)を介して2を出力する必要があります。 各カードの上部には、スペース と10個_のスペースがあり ます。 上から2番目の行は、a /と10個のスペース 、a\ 3番目の行は、カードの値を示す文字がエッジの右に2スペース(上にある場合)または左に2スペース(下にある場合)に表示されることを除いて、すべての中程度の行と同じです。 それぞれの真ん中の行はシンプルで|、10個のスペース ともう1 個のスペースです。| 最後の行はa \と10で_あり、最後に/ 値が複数桁の場合、カードの全体の幅と高さは変わらないはずです。(つまり、10はカードの側面を広くしません) キングの例: __________ / \ | K | | | | | | | | | | | | K | \__________/ 9例 __________ / \ | 9 | | | | | | | | …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.