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

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

12
10代のAZ、わかりますか?
私の以前の挑戦のフォローアップとして、Wordsで20に数えます!、もう一度そのチャレンジの単語リストを使用して別のタスクを実行します。今回は、次のもののみを使用します。 https://github.com/Magic Octopus Urn / wordListsByLength / blob / master / 10.txt それぞれが一意の文字で始まる26の異なる単語を選択し、AからZの昇順で出力するには、有効な例を次に示します。 aardwolves babbitting caravaning debilitate evaporator fantasized geographer hawfinches imbecility juvenility kalanchoes lamaseries malodorous nudibranch oligophagy pantywaist quarreling russetting scantiness teetotaler undercount voodooisms wentletrap xenophobic yeomanries zwitterion これは、アードウルフこれは、シメこれは、カランコエこれは、ウミウシやwentletrap。 ルール リポジトリからの直接の読み取り、またはその他の抜け穴はありません。 リンクで提供されている 26個の単語を選択できます。 単語を選択すると、これらはプログラムが毎回出力する単語です。 次の各文字で始まる単語を1つ選択する必要があります。 [a, b, c, d, …

4
Minecraftのクラフトテーブルを作成する
Minecraftで何かを作成する方法を思い出せない場合は、嫌いではありませんか?さて、それを改善する時間です! 仕事 あなたの仕事は、入力を1Dまたは2Dリストとして受け取り、作成テーブルの結果であるアイテムを出力することです! 入力 入力は、文字列、長さのリスト、9またはネストされた2D配列のいずれかとして取得できます。 として入力を取得する場合... ストリング 表の各項目は、印刷可能なASCII文字(0x20〜0x7E)の1文字です。空きスペースを表現するには、使用-例は、WWW-W-WWWのようなクラフトテーブルと同じになります +------+------+------+ | Wood | Wood | Wood | +------+------+------+ | | Wood | | +------+------+------+ | Wood | Wood | Wood | +------+------+------+ すべてのスペースが保持されている限り、入力を複数行の文字列として受け取ることもできます。 WWW W WWW 1D配列 入力を文字配列として受け取ります。この配列では、作成テーブルの空のスペースが空の文字になります。たとえば、上記のテーブルは ['W','W','W','','W','','W','W','W'] 2D配列 今回は、各リストはクラフトテーブルの行を表します。空のスペースは空の文字です。 [['W','W','W'],['','W',''],['W','W','W']] 入力は常に作成可能なアイテムに対応すると想定できます。配列入力を使用する場合は、空のcharを省略名として使用されていない任意の文字に置き換えることができます。 出力 出力は、それが何を意味するのかが明白である限り、任意の形式の入力から作成されたアイテムになります。(個人的には、1文字のアイテムの略語を使用します) 材料 この課題でwoodは、木の丸太ではなく、木の板を意味します。 作成時に最も一般的なアイテムを処理するだけです。これらはクラフトの材料ですが、クラフトの製品でもあります。作成レシピは、xxxxxxxxx上記の文字列入力のような形式に従います。アイテムを作成できない場合は、---------代わりに配置されます。 いくつかのレシピは形がなく、すべてのアイテムがそこにある限りアイテムが作られることを意味します。これらはで示されます*。これの例は、pumpkin pie(このチャレンジの1つではなく)必要pumpkinでsugarありegg、作られることです。 item …

4
平和な共存軍
チェスのゲームには、同じ行、列、または対角線にある他のピースを攻撃する可能性のあるクイーンと呼ばれるピースがあります。チェスには通常、黒と白の2つの側面があり、各ピースはチームの1つに属します。ピースは同じチームに属するピースを攻撃することはできません。 あなたの目標は、正方形のボードのための最大の平和的共存軍を見つけることです。これは、2人の女王が互いに攻撃することはできず、黒の女王の数が白の女王の数に等しいように、ボードに収まることができる黒と白の女王の最大数です。 正方形のボードの辺の長さを入力として受け取り、そのボードに収まる最大の平和な共存軍のサイズの数を出力する必要があります。 これはコードゴルフなので、タグの標準ルールが適用されます。 OEIS A250000 これらのテストケースには、既知のすべての回答が含まれます。あなたのソリューションは、十分な計算能力と時間が与えられれば、あらゆる入力値に対してソリューションを計算できる一般化された答えでなければなりません。 1:0 2:0 3:1 4:2 5:4 6:5 7:7 8:9 9:12 10:14 11:17 12:21 13:24
15 code-golf  chess 

23
昼食はもう食べましたか?
あなたは昼食が大好きです。しかし、あなたはダイエット中であり、あなたが誤って1日に2回昼食を食べないようにしたいです。そのため、あなたが確認するのに役立つプログラムを作る必要があります。 ただし、複雑なことの1つは、非常に奇妙なスケジュールでランチを食べることです。昼食を食べる時間は、月曜日から日曜日までです(UTCまたはローカライズされたタイムゾーンを使用できます)。そうです、その日が7月14日であれば、午後7時14分に昼食を食べます。 プログラムでは、現在の日付と時刻を使用する必要があり(入力を受け付けない)、その日の昼食をすでに食べている場合(または現在は昼食時間である場合)、または一貫した偽の値を出力する必要がありますあなたが持っていない場合。 例:(プログラムを実行する時間=>出力) 5月4日11:35 AM => false(昼食は5:04 PMに食べる) 6月3日午後5時45分=> false(午後6時3分に昼食を食べる) 7月28日8:30 PM => true(7:28 PMに昼食を食べました) 12月15日午後3時25分=> true(午後12時15分に昼食を食べた) 2月29日2:29 PM => true(正確には昼食時間です) 10月12日12:00 AM => false(日が始まったばかり) 参照: 12時間時計の仕組み
15 code-golf  date 

6
三角形を作ろう
ほとんどの人はパスカルの三角形に精通しています。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 パスカルの三角形は、セルの値が左上と右上のセルの合計であるオートマトンです。次に、同様の三角形を定義します。セルを左上と右上に移動する代わりに、左上と右上に伸びる2つの無限の線に沿ってすべてのセルを移動します。パスカルの三角形のように1、ゼロで無限にパディングされた単一のものから始めて、そこから下に向かってビルドします。 たとえば、で示されるセルを計算するには x 1 1 1 2 2 2 4 5 5 4 x 次のセルを合計します . . . 2 . 2 . 5 5 . x 新しいセルを作成します14。 仕事 行番号(n)と左からの距離(r)を指定して、n番目の行の左からr番目の非ゼロエントリを計算して出力します。(パスカルの三角形に相当するものはnCrです)。rはnより小さいと仮定できます。 これはcode-golfであり、目標はソリューションのバイト数を最小限にすることです。 テストケース 0,0 -> 1 …
15 code-golf  math 

10
最少100オペレーション
概要 数字のリストが与えられたら、100にするための最も少ない操作を見つけます。 入力 数字の列。数字の順序である場合とない場合があります。数字の順序を変更することはできませんが、プラス(+)またはマイナス(-)演算子をそれぞれの間に追加して、合計が100になるようにすることができます。 出力 追加された演算子の数と、それに続く数字と演算子の完全なシーケンス。2つは、スペース、タブ、または改行で区切ることができます。 例 有効な 入力:123456789 出力:3 123–45–67+89 無効な 入力:123456789 出力:( 6 1+2+34-5+67-8+9 より少ない操作でこれを解決する方法があります)

22
合計がその数に等しい値を可能な限り等しい値のリストに分配します
おそらく単純なコードゴルフの挑戦。2つの正の整数mとが与えられた場合、合計が数値に等しい正の整数である値のnリストを作成しnますm。出力のすべての値が同じ値であるか、差が正確に1のいずれかです。 例 例えば m=6にn=3なるだろう2, 2, 2 m=7そして、n=3なる2, 2, 3か、2, 3, 2または 3, 2, 2 m=7そして、n=2なります3, 4か4, 3 m=7にn=1なるだろう7 m=7そしてn=88つの正の整数の合計は7ことができないため、エラーが生成されます。 m=10そして、n=4なる3, 3, 2, 2か、他の順列 ルール 入力と出力はどちらも正の整数のみです。 出力のすべての値が同じ値であるか、差が正確に1のいずれかです。 リスト内の値の順序は重要ではありません。 リスト内の値の合計はに等しくなりmます。 解決できない場合は、エラーまたは偽の値を生成します(たとえば、m = 7およびn = 8の場合)。 他のルールの結果m=8とn=3の順列のいずれかを生成する3, 3, 2(しません2, 2, 4) 勝者 これはコードゴルフであるため、バイト単位で測定された最短の有効な答えが勝ちです。
15 code-golf  number 

14
どのキーを押しましたか?
タスクは、キーボードで押されたキーを識別するコードを記述することです。一度に1つのキーのみが押され、標準のUSキーボードレイアウトがあると仮定できます。これは、2の上に@が付いたレイアウトです。 コードは、押されたキーの一意の識別子を出力する必要があります。これには、PrtScn、Scroll Lock、Pause、左Shift、右Shift、左Ctrl、右Ctrl、Caps Lock、Tab、Enter、テンキーのEnter、Num Lock、Insert、テンキーのIns、Backspace、Del、F1が含まれます... F12、Esc、左Windowsキー、右Windowsキー、Alt、AltGr、アプリケーションキー(コンテキストメニュー)など。 コードは、キーが押されるまで待機し、キーが殺されるまでIDを出力する必要があります。ただし、キーがリリースされるとすぐに識別子を出力する必要があります。受け取ったキーを押すことで他のアクションを実行したり、一意の識別子以外に何も出力したりしないでください。 回答では、Tab、Pause、Enter、テンキーのEnter、左のWindowsキー、右のWindowsキー、テンキーのInsertとInsのキー入力に対するコード出力を示してください。 非常に異なるキーボードを使用している場合、課題はキーボード上のすべてのキーごとに異なる識別子を出力することです。
15 code-golf 

10
フェンスを作ってください!
チャレンジ これは簡単な挑戦です。与えられた2つの正の整数 wとhの幅のASCIIフェンスを作成wしての高さh。フェンスは、次のルールを使用して構築する必要があります。 +文字はポストを表します。 -文字は、フェンスの幅を表すために使用されます。 |フェンスの高さを表すために使用されます。 後は、正確に 3 -文字が出力されている、+文字がなければなりませんその後出力されます。四隅を除いて、aを出力する他の時間は+無効になります。このルールに従うには、左からまたは右から開始することができます(例を参照)が、一貫性が必要です。 後丁度 2つの|文字は、出力された+文字がなければなりませんその後出力すること。四隅を除いて、aを出力する他の時間は+無効になります。このルールは、上または下から開始できます(例を参照)が、一貫している必要があります。 各フェンスには正確に4つのコーナーがあり、各コーナーはで表されます+。 つまり-、3 文字ごとにを出力する必要があります+。また、2 |文字ごとにを出力する必要があります+。 フェンスは常に長方形であり、両方wとhが決してより大きい100またはより小さいと仮定でき1ます。末尾および/または前の空白は許可されます。 例/テストケース w = 1 h = 1 +-+ | | +-+ w = 3 h = 2 +---+ | | | | +---+ w = 5 h = 7 +---+--+ or +--+---+ | | …

4
ナイトフィルグリッド
ナイトフィルは、ナイトチェスの駒の接続性を使用したフラッドフィルです。具体的には: 1 1 1 1 0 1 1 1 1 (0は初期点、1は接続されたセルを示します) チャレンジ スペースと壁の2Dグリッドと初期位置を指定して、グリッドでナイトフィルを実行します。最短のコードが優先されます。 ルール 入力を受け取り、任意の形式(イメージ、文字列、配列など)で出力を生成できます。入力グリッドの一部として、または別の座標として初期位置を取得できます。この説明のために、次の形式が使用されます。 ######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ######## 出力は、ナイトフィルの結果が追加された入力グリッドのコピーです 塗りつぶしは、スペースや壁と同じ「色」であってはなりませんが、初期位置マーカーと同じにすることができます。たとえば、上の画像の場合、有効な出力は次のようになります。 ######## # = wall ######## @ = fill (could also have been x) ## …

6
今日はYOLDで
ディスコルディア暦カレンダー Discordiansによって使用される別のカレンダーです。 Discordian年には5つの季節があり、それぞれ73日続きます:Chaos、Discord、Confusion、Bureaucracy、The Aftermath。 Discordian週には5日間があります:Sweetmorn、Boomtime、Pungenday、Prickle-Prickle、およびSetting Orange。毎年、Sweetmorn(およびChaos)で始まります。 すべてのF ourth年(そのhappe Nグレッグと整列に対するS oをリアンうるういやのR s)は、余分のDと呼ばれるAYがカオス59とカオス60との間に挿入されているセントティブの日。それはディスコルディアン週の外にあります。つまり、聖チブの日の翌日は、プリクル・プリクルの前日であるオレンジになります。 グレゴリオ暦とディスコルディアン暦が並んでいます。どちらもグレゴリオ暦で1月1日と呼ばれる同じ日に始まり、ディスコディアン暦でカオス1と呼ばれます。 不和の聖母の最初の年(YOLD 1)は、グレゴリオ暦で紀元前1166年でした。つまり、今年(2017 AD)はYOLD 3183です。 ディスコディアンカレンダーにも休日がありますが、このチャレンジにとって重要ではないため、休日やそれらに関する情報を出力しないでください。 今日の日付(実行時)を出力または返すプログラムまたは関数を作成します。 Today is Boomtime, the 16th day of Confusion in the YOLD 3183 形式は"Today is $day_of_the_week, the $ordinal day of $season in the YOLD $year"、$ day_of_the_weekは大文字の(タイトルケース)曜日、$ ordinalは序数(1、2、3、4、...)としてのシーズンの日、$ seasonは大文字です(タイトルケース)シーズン、$ yearは年です。 プログラムまたは関数がSt. Tib's Dayに実行される場合、代わりにoutputまたはreturnが返され"Today is …
15 code-golf  date 

18
コポドーペゴポロップホップ
言語:Oppification 次のプロセスを各単語に適用することで、おもしろい会話言語が作成されます。 置きop、各子音の後に。そうCodeなるCopodope。 はい、それだけです。この課題のために、y常に子音です。 課題:脱偽装 不正な単語が与えられた場合、元の単語を返します。入力には文字のみが含まれます。最初の文字は大文字にすることができます。元の単語が空になることはなく、常に母音が含まれます。 テストケース: Oppified -> Original a a I I itop it opop op Opop Op popopop pop Copopop Cop opopopop opop Kopicopkop Kick Asopia Asia soptopopop stop hopoopopsop hoops hopoopopedop hooped ooooohop oooooh aaaopopaaa aaaopaaa Popopopsopicoplope Popsicle gopaloplopopopinopgop galloping aopopbopopopcopopop aopbopcop

24
番号を追加する
かなり簡単な課題:文字列と数値の2つの入力を受け取ります(数値はの"123"代わりに文字列と見なされる場合があります123) 文字列が数字で終わらない(つまり、正規表現に一致しない\d$)場合は、文字列の末尾に数字を追加します。 文字列が数字で終わる場合(つまり、正規表現に一致する\d+$場合)、まずそれを削除してから数字を追加する必要があります。 どちらの入力も無効または空にはなりません(無効は、数字のみを含まない数値入力によって定義されます) 番号にa -またはa が含まれることはありません.。 文字列には、改行や印刷不可能な非空白文字は含まれません。 テストケース: abc123 + 345 -> abc345 123 + 1 -> 1 hello + 33 -> hello33 123abc123 + 0 -> 123abc0 ab3d5 + 55 -> ab3d55 onetwo3 + 3 -> onetwo3 99ninenine + 9999 -> 99ninenine9999
15 code-golf  string 

11
+ pコードを解釈する
別の2文字の言語に対する最近の流行に触発されて、 ;# イントロ コミュニティのコンセンサスによると、このサイトで受け入れられる回答には、少なくとも次のプログラミング言語を使用する必要があります。 自然数が素数かどうかを判断できます 2つの自然数を加算できます 数字のリスト/タプル、および単一の数字を表すことができます この課題のために、#3は無視します。したがって、このサイトで使用できる最も単純な言語(#3を無視)には、正確に2つのコマンドがisPrimeありaddます。解釈とバイトカウントを簡単にするisPrimeためにp、とaddに割り当てましょう+。したがって、言語があり+pます。あなたの課題は、いくつかの+pコードを解釈することです。 動作 + その add命令は、2つの数値をとり、それらを加算し、その結果を出力します pisPrime命令は、単一の番号、および出力をとり1、それが素数であれば、そして0それがない場合には ルール 文字列を指定すると、その文字列を+pコードとして解釈するプログラム/関数を作成する必要があります。あなたは、十分に形成された入力(のみ取ることができる+とp文字)。 入力は柔軟です。プログラムを文字列、文字配列、コードポイントの整数配列などとして取り込むことができます。解釈されるプログラムの入力も柔軟です。整数配列を取り込んで、プログラムの実行中にエントリを使い果たすか、各命令(+およびp)が個別に入力を要求する場合があります。すべての命令に対して十分な入力があると仮定することができます。入力は、0〜200の数字で構成されることが保証されています(ただし、アルゴリズムは、正の整数入力に対して理論的に機能するはずです)。 出力も柔軟です。結果を印刷したり、リストとして返したり、すべての結果を含む文字列を返したりすることができます。印刷または文字列として返す場合、出力は改行などの数字以外の一貫した区切り文字で区切る必要があります。タブ、スペース、または,文字。末尾のセパレータまたは末尾の空白がある場合があります。また、pの出力は、1またはではなく、作業中の言語で定義されているように、任意の真実または偽の値である可能性があります0。 インタプリタは終了する場合と終了しない場合があります(完全なプログラムの場合)が、すべての命令が解釈された後に印刷を停止する必要があります。(区切り文字やヌル文字などを永久に出力し続けることはできません)。 これらの標準的な抜け穴はデフォルトで禁止されています これはcode-golfで、バイト数が最小の答えが勝ちます テストケース Program: + Input: [56, 50] Output: 106 ---------------------------------- Program: p Input: [12] Output: 0 ---------------------------------- Program: p Input: [13] Output: 1 ---------------------------------- Program: ++ Input: [172, 120, 33, 58] …

16
実際の不可視テキストを印刷する
私の以前の課題である、目に見えないテキストを印刷することは非常に一般的でした。 しかし、あなたをもっと注意深く見ている人は、出力だけでは入力されたものを読むことは不可能なので、実際には目に見えないテキストを印刷していないことに気付いているかもしれません。 だから私は本当の目に見えないテキストの挑戦はどうだろうと考えました。 印刷可能なASCII文字(0x20-0x7E)のみで構成される文字列が与えられた場合、各文字を95の印刷可能なASCII文字(0x20-0x7E範囲外のUTF-8文字)のいずれでもない個別のUnicode文字(UTF-8エンコード)に変換します 入力 文字列または文字配列/リストとしての印刷可能なASCII文字の文字列 出力 各文字が個別の非印刷可能文字に置き換えられた入力文字列。指定された各文字には、他の文字の代替として使用されない、対応する印刷不可能な文字が必要です。 印刷できない文字を印刷できない場合は、代わりに文字値を出力できます。 例えば、あなたのコードは、すべて小文字で置き換えた場合a「でね0x01、あなたが使用することはできません0x01他の文字の代用として。 また、コードは確定的でなければなりません。文字列を指定した場合など、この手段Hello、すべて小文字lのがで置き換えられ0x03、また、すべて小文字を交換する必要があり、あなたのコードは、lとS '0x03指定した任意の他の文字列。 テストケース このチャレンジのテストケースを書くのは少し難しいので、出力を16進コードのリストとして表示します input -> output "Hello" -> [0x01, 0x02, 0x03, 0x03, 0x04] "Hi!" -> [0x01, 0x05, 0x06] "" -> [] " H " -> [0x07, 0x07, 0x07, 0x01, 0x07, 0x07, 0x07] "yo! " -> [0x08, 0x04, 0x06, 0x07]

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