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

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

10
最も近い特別共通年はいつですか?
一般的な年はうるう年とどこ年の最初と最後の日が同じ日にあるではない年です。特別な共通今年はうまくとして月曜日に終了し、月曜日にとして始まるものです。 あなたの課題は、入力として年を指定すると、最も近い特別な共通の年を見つけ、それが共通の年である場合にそれ自体を出力するプログラム/関数を作成することです。年がその前の年に近い場合、その次の年が大きい年を出力します。 入力 範囲内でテストする年を表す整数1600 <= x <= 2100。 出力 最も近い特別な一般年を表す整数。 テストケース 2017 -> 2018 2018 -> 2018 1992 -> 1990 1600 -> 1601 2100 -> 2103 1728 -> 1731 (lies between 1725 and 1731) ノート 指定された範囲内の54年はすべて、リンクされたWikipediaの記事にすでに表示されています。また、参照用にここで提供します。 1601, 1607, 1618, 1629, 1635, 1646, 1657, 1663, 1674, 1685, 1691 1703, 1714, 1725, …
11 code-golf  date 

14
2Col構文を検証してください!
人々のカップルは最近気づいたかもしれませんが、私はほとんどの開発放棄してきたBraingolfを、それは退屈と平凡だため、そして上へ移動2Colもう少し面白いです、そしてゴルフの言語に設計されていません。 2Colの定義機能は、改行を除いて、すべてのコード行が正確に2文字の長さでなければならないことです。つまり、2Colプログラムの長さは、プログラムの行数が3n-1どこにあるかnとして常に計算できます。 2Colコードを文字列として指定し、有効な2Colコード(すべての行が正確に2文字であり、3n-1式に準拠している)である場合は真実を出力し、そうでない場合はfalseyを出力します。 入力 入力は、単一の文字列または文字の配列として取得する必要があります。 出力 入力文字列が有効なレイアウトの場合は真偽値、そうでない場合は偽値。 コードは、使用する真実/偽の値が一貫している必要があります テストケース ====== F! $^ ---- truthy ====== ====== *8 +1 Sq ---- truthy ====== ====== nop xt ---- falsey ====== ====== +1 +1 #^ ---- falsey ====== ====== <empty string> ---- falsey ====== ====== ye ---- truthy ====== ====== no<space> ---- falsey …

8
アメリカに登る
他のユーザーがトランプを助けて壁を築いたので、あなたがそれを登る時が来ました。 これは、ランダムに配置されたホールドでクライミングウォールを出力する必要があるアスキーアートの課題です。 クライミングウォールは、それぞれ3〜10個のホールドを持ち、高さ5パネルのパネルで構成されています。各パネルの高さは4文字、横は10文字です |壁の側面(アレット)を表すために使用し-、パネルの端を表すためにa を使用します。パネルの角はで示され+、ホールドはで示されていoます。 最後に、壁America!は上部とMexico下部になければなりません。 実行に入力が必要な場合を除き、プログラムは入力を受け付けず、次のような出力を出力する必要があります。 これは出力例です: America! +----------+ | o | | o o | | o o | | o o | +----------+ | o | | o o | | o o | | o o | +----------+ | o | | o o | | …

17
行列がテプリッツ行列であるかどうかを確認します
2次元の配列と数値が与えられ、与えられた行列がテプリッツかどうかを尋ねられます。 入力フォーマット: two-dimensional引数として行列を取る関数が与えられます。 出力フォーマット: 1行列がテプリッツの場合は関数から戻り、そうでない場合はを返し-1ます。 制約: 3 < n,m < 10,000,000 ここnで、行mの数は列の数になります。 サンプルテストケース: Sample Input : 4 5 6 7 8 9 2 4 6 7 8 9 1 4 6 7 8 0 1 4 6 7 Sample Output : 1 得点 これはcode-golfであるため、バイト単位の最短回答が優先されます。

19
すべてのサブリストパーティションを生成する
整数の空でないリストが与えられた場合、各パーティションが空でないサブリストであるリストの可能なパーティションをすべて出力します。 リスト[1, 2, 3, 4]の結果は次のとおりです。 [[1, 2, 3, 4]] [[1, 2, 3], [4]] [[1, 2], [3, 4]] [[1, 2], [3], [4]] [[1], [2, 3, 4]] [[1], [2, 3], [4]] [[1], [2], [3, 4]] [[1], [2], [3], [4]] 出力内のリストの順序は重要ではないため、[[1, 2, 3, 4]]最初、最後、またはどこでもかまいません。要素の順序を保持する必要があります。 これはコードゴルフなので、最短の回答が勝ちです。 関連:リストを分割します!

10
根を回転させる
整数係数と根が虚数と実数直線上にあり、if aが根である場合、そうであるような非ゼロの多項式が与えられた場合-a、根が90度回転した別の多項式を返します。 詳細 多項式は、たとえば係数のリストとして、任意の合理的な形式で指定できます。a根である場合に限り根となる対称条件は-a、回転した多項式にも実整数係数を強制します。 例 以下では、多項式は降順の単項式の係数のリストとして与えられます。(つまり、定数が最後になります)多項式にx^2-1は根があり{1,-1}ます。それらを回転さ90°せるには、i(虚数単位)を掛けることを意味するため、出力多項式にはが必要{i,-i}ですx^2 + 1。 Input / Output [1 0 10 0 -127 0 -460 0 576] [1 0 -10 0 -127 0 460 0 576] [1 0 -4 0] [1 0 4 0] [1] [1]

12
Javaパッケージを短くする
ブリーフィング 完全に修飾されたJavaクラス/パッケージ名を指定すると、次のように短縮する必要があります。 ドット区切りパッケージの各部分は、最後のセクションとクラス(存在する場合)を除き、最初の文字に短縮されます。 パッケージ名はすべて小文字で、クラス(存在する場合)は大文字で始まり、UpperCamelCaseになります。パッケージの形式は次のとおりです。 foo.bar.foo そして foo.bar.foo.Class 例 (No Class) Input com.stackoverflow.main Output c.s.main (Class) Input com.google.parser.Gson Output c.g.parser.Gson (Class) Input com.google.longer.package.TestClass Output c.g.l.package.TestClass ルール バイト単位の最短コードが勝つ 標準的な抜け穴が適用されます
11 code-golf 

4
D&D 5e HPカリキュレーター
D&Dキャラクターをレベルアップするときにやらなければならないことすべてを思い出すのに苦労しています。なんらかの理由で、私を困らせることの1つは、新しい最大HP値がどうあるべきかを理解することです。この課題では、正しい値を自動的に計算するプログラムまたは関数を作成します。 用語 最大HPを計算するために最初に知っておく必要があるのは、「構成修飾子」です。各DNDキャラクターには、6つの整数アビリティスコアがあり、1つは憲法のものです。この課題に必要な唯一の関連知識は、憲法の能力スコアが別の統計値、つまり憲法修正因子にどのように影響するかです。つまり、修飾子はに等しくなりfloor( (ability_score - 10) / 2 )ます。冒険者は、1〜20の能力スコアのみを持つことができます。コードがその範囲外のスコアを処理する必要はありません。つまり、-5未満または+5より大きい修飾子を処理する必要はありません。Constitution修飾子はキャラクターがレベルアップするにつれて変化する可能性がありますが、HPへの影響は遡及的に適用されるため、現在の最大HPを計算するには現在の値のみが必要です。 (これは、チャレンジとは全く無関係であるが、それは最大HPにどのような影響を与えるかについて、あなたがしている好奇心の場合:あなたは、それはだから「タフ」偉業は、HPの計算の目的のために、文字の憲法の修正に2を加えると仮定することができます効果的にそれが何をしますか。それは偉業のテキストではありませんが、数学はまったく同じになるように機能します。答えでこの偉業を処理する必要はありません。) 次に、すべてのクラスには「ヒットダイ」タイプが割り当てられており、HPの計算に関与しています。次の表に、各クラスのヒットダイスを示します。 Sorcerer: d6 Wizard: d6 Bard: d8 Cleric: d8 Druid: d8 Monk: d8 Rogue: d8 Warlock: d8 Fighter: d10 Paladin: d10 Ranger: d10 Barbarian: d12 最後に、キャラクターのレベル。これが影響するのは、次のセクションで積算合計に値を追加する回数だけです。キャラクターのレベルは包括的、1〜20の整数である1。コードがその範囲外のレベルを処理する必要はありません。レベルnに到達するには、キャラクターはレベル1から始まり、n-1時間を増やします。たとえば、レベル3のキャラクターは、レベル1のキャラクターになり、2回レベルアップすることで、現在の位置に到達しました。 最大HPの計算方法 キャラクターの最大HPは、レベル1のHPと各レベルで受け取った増加の合計に等しくなります。 レベル1 レベル1では、キャラクターのHPは、ヒットダイス(ダイスの名前に含まれる数字で、6面以上のサイコロに不慣れな方)の可能な限り高いロールに、憲法修正値を加えたものに等しくなります。後のレベルでHPを計算するとき、計算のこの部分は憲法が変わるたびにやり直されるため、キャラクターの憲法は常に同じであると仮定することができます。 レベルアップするとき キャラクターがレベルアップするたびに、2つのオプションがあります。彼らは、ヒットしたサイコロの1つを振るか、そのサイコロの平均のロールを取る(切り上げ)ことができます。どちらを選択しても、構成修飾子が結果に追加されます。この合計は、HPが増加する量です。この課題では、常に平均ロールが取られるため、出力は決定的です。(繰り返しますが、6面以上のサイコロに慣れていない場合は、切り上げた平均ロールをとして計算できます(highest_possible_roll / 2) + 1。) 注目すべき例外が1つあります。キャラクターの最大HPは、レベルが上がるたびに少なくとも1増加します2。上記の段落の指示がレベルアップ時に0以下の増加をもたらす場合、代わりに1増加します。 チャレンジ プログラムまたは関数は3つの入力を受け取ります。 文字列としてのキャラクターのクラス …
11 code-golf 

3
チャレンジ類似性検出器
チャレンジ 2つの質問IDが与えられたら、回答を見て、それらがどれほど似ているかを理解してください。 詳細 の2つの質問IDが与えられcodegolf.stackexchange.comます。削除されていないが、必ずしも開かれているわけではない両方のIDに関する質問が存在すると想定することができます。すべての回答を調べて、2つの質問に対する回答のコード間の最小レーベンシュタイン距離を決定する必要があります(削除された回答は含まれません)。つまり、質問1のすべての回答を質問2のすべての回答と比較し、最小レーベンシュタイン距離を決定する必要があります。回答内のコードを見つけるには、次の手順を想定します。 コードスニペットを見つける方法 テキストの本文は、上にテキストがない場合を除き、バックティック内にあり、独自の行にある場合、または4つのスペースでインデントされ、その上に空の行がある場合、回答の実際のコードです。 有効で無効なコードスニペットの例(.スペースとして)(等号のトンで区切られている) This is `not a valid code snippet because it is not on its own line` ======================================== This is: `A valid code snippet` ======================================== This is ....not a valid code snippet because there's no spacing line above ======================================== This is ....A valid code snippet …

17
平等は3つになります
撮影元:OEIS- A071816 の上限が与えられたタスクはn、方程式を満たす解の数を見つけることです。 a+b+c = x+y+z, where 0 <= a,b,c,x,y,z < n シーケンスは、OEISページで説明されているように、以下のように開始されます(1-indexed): 1, 20, 141, 580, 1751, 4332, 9331, 18152, 32661, 55252, 88913, 137292, 204763, 296492, 418503, 577744, 782153, 1040724, 1363573, 1762004, 2248575, 2837164, 3543035, 4382904, 5375005, 6539156, 7896825, 9471196, 11287235, 13371756 のn = 1解決策は1つだけです。(0,0,0,0,0,0) のためにn = 2、20の順序付けられたソリューション(a,b,c,x,y,z)がありa+b+c = …

9
MD2ハッシュではどの文字がより一般的ですか?
挑戦は簡単です 文字列入力が与えられると、MD2ハッシュアルゴリズムを使用して文字列をハッシュするスクリプトを記述し、結果のハッシュで16進数文字列としてより一般的な文字セットに基づいて正の整数または負の整数出力を返します。 01234567 - (positive) 89abcdef - (negative) 入力は常に文字列になりますが、65535までの任意の長さにすることができます 入力全体、空白およびすべてをハッシュする必要があります このチャレンジのために、整数0は正でも負でもないと見なされます(tie出力を参照) より一般的なセットは、32文字の16進数ハッシュ文字列内で文字がより一般的な人です 出力には、空白以外の文字のみが有効な真実または偽の出力である限り、あらゆる種類の末尾の空白を含めることができます 16進文字列に各セットの正確に16文字が含まれる場合、プログラムは0を出力する必要があります I / Oの例 Input: "" (Empty String) Hash: 8350e5a3e24c153df2275c9f80692773 Output: 1 Input: "The quick brown fox jumps over the lazy cog" (Without quotes) Hash: 6b890c9292668cdbbfda00a4ebf31f05 Output: -1 Input: "m" (Without quotes) Hash: f720d455eab8b92f03ddc7868a934417 Output: 0 受賞基準 …

8
花を育てよう!
春が来たばかりで、花が芽を出し始めた頃です。だから、彼らが成長するのを助けてほしい。 あなたのタスク: 2つの数値、、mおよびが与えられた場合、グリッドにランダムに配置されたn出力m花n*n。 単一の花は次のようになります。 & | 花の位置は、その場所によって定義され&ます。2つの花をランダムに配置する場合、2つを同じ場所に置くことはできません。ある花&が別の花と重なる場合|、を表示し&ます。花の下の列は何も含まないかもしれません&。 入力は、標準メソッドのいずれかを使用して、数値または文字列として行うことができます。 出力は、グリッドの1行を表す文字列のリスト、またはリストと同じガイドラインに従った区切られた文字列です。出力の標準的な方法。後続のものは何でも許可され、タブを使用して花を分離できます。すべてのグリッドは、スペースなどで完全に埋める必要があることに注意してください。 入力は常に有効であることに注意してください。m花をnby nグリッドに常に合法的に適合させることができます。 テストケース: 「ランダム配置」ビット全体により、非常にタイトなテストケースのみが保証されるため、回答が提供される唯一の種類のテストケースになります。ただし、すべての提出物をオンラインで試して、いくつかのテストケースを使用してそれらが有効であることを確認します。 テストケースの入力はの形式で提供されm, nます。 Input: 2, 2 Output: && || -------------- Input: 6, 3 Output: &&& &&& ||| Output:テストケースの単語の後の改行はオプションであることに注意してください。 その他のテストケース: 1、10 0、100 5、8 6、3 ゴルフをコード化するので、最短コードが勝ちます! この課題を作成し、秘密のサンタさんのギフトボックスに投稿してくれたComradeSparklePonyに感謝します。サンドボックスポスト

9
デジタルプロッターを構築する
ドナルド・M・モンロ著の 『Fortran 77』から適応した問題 前書き デジタルプロットマシンは、さまざまな形式の図面、グラフ、その他の画像結果を生成するために広く使用されています。このようなマシンのほとんどは、特定の方向にのみペンを移動できます。通常は、X方向とY方向、またはその両方の単一ステップとしてのみ移動できます。典型的な機械は、図1に示す8つの方向のいずれかに移動します。 図 1 チャレンジ 入力として0から7までの数値を取り、図1のエンドポイントの対応する座標を出力する三角関数なしのプログラムを作成します。 出力は、2つの要素(つまり(1, 0)または[0,-1])を持つ配列またはリストとしてください I / Oの表 0 (1, 0) 1 (1, 1) 2 (0, 1) 3 (-1, 1) 4 (-1, 0) 5 (-1, -1) 6 (0, -1) 7 (1, -1) 勝ち バイト単位の最短コードが勝つ
11 code-golf 

9
隠されたメッセージをデコードします!
前書き ある日、突然CIAのオフィスでリラックスしていましたが、突然コンピューターにアラートが表示されました。あなたのプログラムは何百ものコード化されたメッセージを傍受しました!簡単な検査でエンコードのルールが明らかになりますが、高速でデコードするにはプログラムが必要です。 チャレンジ コンマで区切られた文字列のリストが表示されます。各文字列には次のいずれかが含まれます。 コード化されたメッセージの一部 それがフォームにないならコード化されたメッセージの一部ですa=b。それがそうならメッセージの一部であることに注意してくださいab=c。この文字列をコード化されたメッセージに追加します。 エンコードスキームの一部 これはの形式になりa=bます。つまり、メッセージ内のすべてのaをbに置き換える必要があります。これはである可能性があることに注意してくださいa==。つまり、すべてのaを=に置き換える必要があります。 プログラムは、見つかったスキームを使用してデコードされたメッセージを出力する必要があります。 その他の情報:入力には、文字列を区切るためのカンマのみが含まれます。!1#など、他の文字を含めることができます。大文字は含まれません。デコード情報のビットは互いにデコードしません。メッセージのみがデコード情報の影響を受けます。各文字に対して1つの置換のみが与えられます。たとえば、no"io,"i=u","i=g" 例 入力:"ta","y=s","y","a=e","b=t","b"," ","j","j=1" 出力:test 1 入力:"z=p","zota","g=e","yugkb","y=t","u=o","k=s","li","fg","b==" 出力:potatoes=life 入力:"p","=","==n","ot","p=a","hiz","i=e","z=r" 出力:another これはcode-golfなので、バイト単位の最短回答が勝ちです!

3
ASCIIアートを簡単に作成してください!
このようなASCIIアートの文字列が与えられた場合(これはASCIIアートではありませんが、例で行います): abc d e fgh 次のように、1行に1文字ずつ画面上に表示されているかのように混ぜます。 a b c d e f g h 結果を印刷し、1秒、±0.5秒待ってから端末をクリアし、同じことを印刷しますが、1行ではなく2文字を表示します。基本的に、ディスプレイの幅は1から2に変わります。 ab c d e fg h の後のスペースに注意してくださいd。待機を繰り返し、入力されたテキストが出力されるまで、行ごとに追加の文字で印刷します。 文字を印刷しようとしたときに行の最後にヒットした場合、改行を挿入し、このルールに従って残りの行を印刷します。たとえば、入力: abcdefg ab ディスプレイの長さが4の場合、次を印刷します。 abcd efg ab 端末のサイズ変更の効果は、https://repl.it/GoeU/1で確認できます。プログラムを実行し、ターミナルをテキストエディターから分離するものを前後にドラッグします。 明確化: 行が入力されたとおりに表示されたら、その行をそのままにしておき、将来の行ごとの文字数を増やします。 abc ab 印刷する必要があります ab c ab 文の長さ= 2の場合 これはcode-golfなので、最小バイト数が勝ちです! ルール: 唯一の出力としてSTDOUTに出力する必要があります。 端末をクリアするか、150行程度の空の行を追加して端末をクリアするような錯覚を作成する必要があります。 標準的な方法で入力を取得できます。 デフォルトの抜け穴が適用されます。 テキストの末尾のものは大丈夫ではありません。 このアイデアは、ASCIIアートのある端末のサイズを変更するときに思いつきました。面白そうだったので、そこから挑戦することにしました。 テストケース: 各テストケースの各ステップを個別に表示するのは非常に手間がかかるため、各回答を確認して有効であることを確認します。答えがテストケースを処理できることを確認してください。 …

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