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

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

22
彼らは私をインスペクターモールスと呼んでいます
あなたの使命は、あなたがそれを受け入れることを選択した場合、与えられた入力文字列がドットヘビーであるか、ダッシュヘビーであるかを決定することです。 文字列は、モールス表現にダッシュよりも多くのドットが含まれている場合、ドットが多くなります。たとえば、文字Eは単一のドットであり、ドットが多いことを意味します。 入力 入力文字列には、[a-z]またはの範囲の文字のみが含まれます[A-Z]。すべて大文字にするか、すべて小文字にするかを決定できます。AAA結構です、aaa結構です、そうでaAaはありません。 入力文字列の長さは常に少なくとも1文字です。 入力文字列のドットとダッシュの量が同じになることはないと想定できます。 出力 より多くのドット文字を含む入力に対してTruthyを返す必要があります。 より多くのダッシュ文字を含む入力に対しては、Falsyを返す必要があります。 編集:ドットの正の値とダッシュの負の値も許可します。 テストケース | input | morse representation | result | |------------------------------------------------| | S | ... | Truthy | | k | -.- | Falsy | | HELLO | .... . .-.. .-.. --- | Truthy | | code | -.-. --- …
20 code-golf  morse 

27
カウチ2048:2048まであとどれくらい?
Couch 2048というゲームを試しました。 (注:この質問をよりよく理解するために一見する必要があります。) それは私にとってあまりエキサイティングではなかったので、私は自分自身に「2048年まであとどれくらい!?」 それは私が思ったほど簡単ではないのでこれを計算するので、私は挑戦を投稿するように促しました。 あなたの目標: ソファにあるボールのリストが与えられたら、ゲームに勝つために(2048ボールに到達するために)値が2のボールを空から降ろさなければならない数を出力する必要があります。 入力が有効であると仮定します。 プレーヤーがボールを落とさないと仮定します。 私が言ったように、空から落ちるボールの値は常に2であると仮定します。 有効な出力例:3、 "4"、[5]、["6"] 編集: 私は何かを明確にする必要があります: - 必要な2の最小量を印刷する必要があります。 テストケース: [2048] -> 0あなたはすでに獲得した [1024,1024] -> 0あなたが勝つために任意のより多くのボールを必要としない [1024,512,256,128,64,32,16,8,4,2] -> 11つのボールをするために必要な「チェーンを活性化させます」 [512] -> 768 [512,2] -> 767 [4,16,64] -> 982 注: 私はネイティブスピーカーではありません-誤字や文法的でないテキストを見つけた場合は教えてください。 不明な点がある場合は、コメントでお尋ねください。
20 code-golf 

30
配列の繰り返しをカウントする
配列を受け取り、複数回発生する整数の数を返す必要があります。 [234, 2, 12, 234, 5, 10, 1000, 2, 99, 234] 234と2が複数回出現するため、これは2を返します。 [234, 2, 12, 234] [2, 12, 234, 5, 10, 1000, 2] リストの長さが100kを超えることはありません。また、リスト内の整数は常に-100k〜100kの範囲になります。 整数が複数回出現する場合、整数をカウントする必要があります。したがって、整数が3回出現した場合でも、1つの繰り返し整数としてカウントされます。 テストケース [1, 10, 16, 4, 8, 10, 9, 19, 2, 15, 18, 19, 10, 9, 17, 15, 19, 5, 13, 20] = 4 [11, 8, …

20
最小の多様化指数
pandigital数が少なくとも一度0~9からすべての数字を含む整数です。1234567890、1902837465000000、および9023289761326634265はすべてpandigitalです。このチャレンジでは、123456789 = 0123456789であっても、123456789などの数字は0を含まないため、パンデジタルではありません。 多様な整数の対は、整数の対であるよう pandigitalあります。は多様化指数と呼ばれます。(a,b)(a、b)(a, b)ababa^bbbb 課題:整数与えられると、対応する最小化する多様化指数見つけます。これはcode-golfであるため、バイト単位の最短プログラムが優先されます。aaabbb (このような指数が存在すると想定できます。つまり、10の累乗などの無効な入力がプログラムに与えられることはありません。) ソリューションは、少なくとも指定されたテストケースを処理できる必要がありますが、理論的にはすべての有効な入力を処理する必要があります。 これは、OEISのA090493です。 テストケース 2 -> 68 3 -> 39 4 -> 34 5 -> 19 6 -> 20 7 -> 18 8 -> 28 9 -> 24 11 -> 23 12 -> 22 13 -> 22 14 -> 21 15 -> 12 …
20 code-golf  math 

4
ローマにいるとき、ローマ人のように数えますか?
バックグラウンド この課題は、次の図を公開しているこの Webサイトから着想を得ています。 この図は、250未満のローマ数字の最長表現が188であり、表現するのに9つの数字が必要であることを示しています。 チャレンジ ほとんどのローマ数字を表現するために使用される標準的な記号は以下の通りである:{ I、V、X、L、C、D、M}、文字の数値である場合M= 1000 D= 500 C= 100 L= 50、X= 10、V= 5、I= 1。 この課題の目標は、正の整数nが与えられた場合、n個の標準シンボルを連結して構成できる有効なローマ数字表現の数を計算することです。 次に、プログラムはこの計算の結果を出力する必要があります! 入力:正の整数n。 出力:長さnの有効なローマ数字表現の数。 ローマ数字表現の規則 ローマ数字はもともと「加算」ペアのみでした。つまり、数字は常に降順で書き込まれ、すべての数字の値の合計は数字の値でした。 後に、減算ペアリング、より大きな数字の前に小さな数字を配置して、大きな数字から小さな数字を減算する使用が、ローマ数字の表現を短縮するために一般的になりました。次の無効な式のように、減算ペアは連鎖できませんIXL。 以下は、加算と減算のペアリングに関する現代のルールです。 1つのI、X、およびCのみが減算ペアの一部の先頭の数字として使用できます。 減算ペアのVまたはXの前にのみ配置できます。 Xは、減算ペアのLまたはCの前にのみ配置できます。 Cは、減算ペアのDまたはMの前にのみ配置できます。 減算ペア以外の数字は降順でなければなりません(つまり、各減算ペアの先頭の数字をドロップすると、数字は降順になります)。 M、C、およびXは、より小さい額種で同等または超過することはできません。 D、L、およびVはそれぞれ1回だけ表示できます。 Mのみを4回以上繰り返すことができます。 さらなる注記 バー表記は使用しません。むしろ、Mを追加して任意の数を表現します。 これらは、ローマ数字について従う唯一の規則です。つまり、などの奇数の式IVIもシステムで有効と見なされます。 また、一部の数値には複数の式があるため、長さnの式を持つ数値の数はカウントしないことに注意してください。代わりに、有効な式の数のみをカウントしています。 テストケース 1 → 7 2 → 31 3 → 105 上記を手動で確認したので、テストケースを再確認し、可能であれば追加してください。 受賞基準 これはコードゴルフの挑戦なので、楽しんでください!少なくとも1〜9の入力を処理できるソリューションのみを受け入れます。それ以上はボーナスです! …

11
N行N列のボード上の騎士のグラフ
チェスでは、ナイトは、withでマークされた現在の位置に対してXでマークされた位置にのみ移動できます。 A ナイトのグラフは、チェス盤の騎士チェスの駒のすべての法的動きを表したグラフです。このグラフの各頂点はチェス盤の正方形を表し、各エッジは騎士が互いに離れている2つの正方形を接続します。 標準の8行8列のボードでは、グラフは次のようになります。 チャレンジ: 整数所与N、ここで3≤N≤8 、出力NバイNの各位置からの可能な移動の数が示されている基板を表す行列、。以下のためにN = 8、出力は、上記グラフの各頂点の値を示す行列であろう。 出力形式は柔軟です。リストのリストまたはフラット化されたリストなども受け入れられる形式です。 テストケースの完全なセット: --- N = 3 --- 2 2 2 2 0 2 2 2 2 --- N = 4 --- 2 3 3 2 3 4 4 3 3 4 4 3 2 3 3 2 --- N = 5 …

30
入力が与えられると、基数とべき乗が入力に加算されるすべての指数を出力します
これがこのサイトでの私の最初の挑戦です。 課題は、正の入力整数nnnを取り込み、昇順(111から、を含む)で(は現在の整数)の出力を出力することです。 nnni(n−i)i(n−i)i^{(n-i)}i私i 例 入力5が与えられると、プログラムは以下を印刷します。 1 8 9 4 1 14141^4は1およびは8およびは9およびは4およびは1および1+4=51+4=51+4=5 23232^32+3=52+3=52+3=5 32323^23+2=53+2=53+2=5 41414^14+1=54+1=54+1=5 50505^05+0=55+0=55+0=5 入出力 入力は正の整数の形式になります。出力は、コンマまたは改行で区切られた数字のリストになります。 これはcode-golfなので、最短のコードが優先されます。

15
ワンラインキーボード
チャレンジ この課題の目標は、標準のUK QWERTYキーボードの1行のみを使用して、指定された文字列を入力できるかどうかを判断することです。 これはcode golfですので、バイト単位の最短ソリューションが勝ちです! IO 入力は、32から126までのASCII 10進数範囲内の0個以上の文字の単一の文字列になります。このチャレンジでは、空の文字列は入力する必要がないため、1行で入力できると想定できます。 入力は、文字列、文字のリスト、または言語の同等の形式として取得できます。 出力は、単一の行を使用して入力できる文字列の場合は真の値、入力できない場合は偽の値である必要があります。 キーボード・レイアウト 標準のキーボードレイアウトが下にあるもののあいまいさを明確にするために、各行で使用可能なキーのリストを示します。これには、代替の上位キー(Shiftキーを使用してアクセス)が含まれます。 ライン1 標準: `1234567890-= 2行目 標準: qwertyuiop[] 3行目 標準: asdfghjkl;'# 大文字: ASDFGHJKL スペシャル:Caps Lock 行4 標準: \zxcvbnm,./ 代わりの: |<>? 大文字: ZXCVBNM 特別:シフト 5行目 スペシャル:スペースバー 代替の上部キーは、Shiftも同じ行にある場合にのみ押すことができ、大文字のキーにはCaps LockまたはShiftを介してのみアクセスできます。実際に使用できるのは、キーボードの1行だけです! テストケース -> true (empty string) 45-2=43 -> true (line 1) qwerty -> true …

17
構築できるキューブの数
仕事 あなたの仕事は、個のキューブを持つ構造を構築することです。キューブのボリュームは次のシーケンスに従います(下->上)nnn n3、(n − 1 )3、(n − 2 )3、。。。、13n3,(n−1)3,(n−2)3,...,13n^3, (n-1)^3, (n-2)^3,...,1^3 入力 構造の総体積()。VVV 出力 ()の値、つまり:キューブの総数。nnn V= n3+ (n − 1 )3+ 。。。。+ 13V=n3+(n−1)3+....+13V = n^3 + (n-1)^3 + .... + 1^3 ノート 入力は常に整数です。 シーケンスをたどることができない場合があります。つまり、は特定の値を表しません。その場合、-1または選択した偽の値を返します(ただし、一貫性が必要です)。nVVVnnn これはコードゴルフなので、各言語のバイト単位の最短回答が勝ちです。 上記の理由により、回答は承認されません。 リクエスト これはこのサイトでの私の最初の挑戦ですので、私と一緒に我慢し、私が犯した間違いを許してください(そして私に教えてください)。 コードをテストできるように、リンクを提供してください。 できれば、他の人があなたの仕事を理解して感謝できるように、あなたのコードがどのように動作するかについての説明を親切に書いてください。 例 input : 4183059834009 output : 2022 input : 2391239120391902 …
20 code-golf  math 

15
細胞の隣人を見つける
...またはトロイダルムーア周辺 正の整数と負でない整数hを指定するwと、をi囲むすべてのインデックスを返しますi。 一番左から左下、一番上から右下隅に番号が付けられた要素のh行で構成される行列を想定し、w妥当な形式で、インデックスのリストを返します。インデックスを囲みますi。このマトリックスはトーラス(各エッジを包む無限のマップ)です。 たとえば、入力h=4およびw=4は、次の行列になります。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 より具体的には: 15 12 13 14 15 12 3 0 1 2 3 0 7 4 5 6 7 4 11 8 9 10 11 8 15 12 13 14 15 …
20 code-golf  matrix 

23
ミュージカルタートルと遊ぶ
私の2人の子供は、次のおもちゃで遊ぶのが好きです。 内側に図形のある色付きの領域をタッチすると、カメがその領域を照らし、音を鳴らすか、内部の色または形状の名前を言います。中央のボタンはモードを変更します。触れたときに領域が異なる音符を演奏する1つのモードがあります。子供が時計回りに連続する3つの領域に触れると、特別なメロディ1が再生されます。タッチされた3つの連続した領域が反時計回りに配置されている場合、特別なメロディ2が再生されます。 チャレンジ おもちゃの内部ロジックをシミュレートしましょう。キッドを3回押すと文字列が与えられると、3回押すと連続する領域(時計回りまたは反時計回り)の場合は2つの明確な一貫性のある値を返し、そうでない場合は3番目の明確な値を返します。 詳細 入力エリアはそれぞれ文字で名前が付けられ、色ROYGBは赤、オレンジ、黄色、緑、青の場合があります。またはその形状:HSRTCハート、正方形、星(R)、三角形、円。大文字と小文字は区別されません。入力と出力を大文字と小文字のどちらで扱うかを選択できます。 プログラムは、3回押すと文字列(またはchar配列または同等のもの)を受け取ります。例(色を使用): 、RBO、GYO、BBR、、YRGYGBORB ... プログラムは、3つの可能な結果を​​表す3つの異なるコヒーレントな値を出力します:組み合わせが特別なメロディーをトリガーしない場合は最初の値、組み合わせが時計回りの特別なメロディーをトリガーする場合は2番目の値、組み合わせがトリガーする場合は3番目の値反時計回りの特別なメロディ。例:0特別な組み合わせがない場合1、時計回りの組み合わせ-1によってトリガーされるメロディーおよび反時計回りの組み合わせによってトリガーされるメロディー 間違った入力の処理を心配する必要はありません。 テストケース Input Output // Input based on colors -------------- RBO 0 // No special combination GYO -1 // Counterclockwise melody triggered BBR 0 // No special combination YRG 0 // No special combination YGB 1 // Clockwise melody triggered …

5
嫌いな人を追い払う
セットアップ: ソーシャルネットワークは、投稿の投票数を2つの方法で報告します:純投票数(総投票数-総投票数)と、投票数の割合(最も近い整数に切り上げ)(0.5切り上げ)。正味の投票数は整数(必ずしも正とは限らない)であり、2番目は0から+100までの整数であることが保証されています。アップ投票の数とダウン投票の数は、どちらもゼロまたは正の32ビット整数です(符号付きまたは符号なしを指定できます)。総投票数がゼロの場合、投票率はゼロとして報告されると仮定します。 チャレンジ: これらの2つの整数(ネットのアップ投票と%のアップ投票)が与えられた場合、上記のすべての制約が満たされた状態で、投稿が受け取った総アップ投票の最小数を決定する最短のプログラムはどれですか? 入力制約が保証されています。入力が上記の制約を満たさない場合、プログラムの動作はユーザー次第です。無限ループに入ったりクラッシュしたりしなければ、賞賛に値します。さらにガイダンスが必要な場合は、負の数を返すことを検討してください。 一般的なルール: これはcode-golfであるため、最短の有効なソリューション(バイト単位で測定)が勝ちます。 コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。Javascriptのようなクライアント側のWeb言語の賞賛。 複数の言語で興味深いソリューションがある場合は、それらを個別に投稿してください。 回答には標準的な規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型を使用した関数/メソッド、または完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、コードの動作方法の説明を追加してください。 roundsではなく切り捨てる整数除算演算(たとえば20/3 = 6)を実行している場合、それは完全に正しいとは限らないことに注意してください。 上記の制約のエッジケースを調査する追加のテストケースを歓迎します。 期待される戻り値のタイプは数値ですが、ブールの「false」を0の代わりに使用できます。 テストケースの例: 最初の列は、議論を容易にするために含まれている単なる参照番号です。 ref net %up answer 1 0 0 => 0 2 -5 0 => 0 3 -4 17 => 1 4 -3 29 => 2 5 -2 38 => …

18
上ウィトオフまたは下ウィトオフ?
まず、Beattyシーケンスについて説明しましょう。正の無理数rが与えられた場合、正の整数をrに順番に乗算し、結果の各計算のフロアを取得することにより、無限シーケンスを構築できます。例えば、 r > 1の場合、特別な条件があります。s = r /(r -1)として別の無理数sを形成できます。これにより、独自のBeattyシーケンスB sを生成できます。巧妙なトリックは、B rとB sが相補的であるということです。つまり、すべての正の整数は、2つのシーケンスのうちの1つに正確に含まれます。 r = the(黄金比)を設定すると、s = r + 1と2つの特別なシーケンスが得られます。下WythoffシーケンスのためのR: 1, 3, 4, 6, 8, 9, 11, 12, 14, 16, 17, 19, 21, 22, 24, 25, 27, 29, ... そして、上側Wythoffシーケンスのための: 2, 5, 7, 10, 13, 15, 18, 20, 23, 26, 28, 31, …

22
ダブル、XOR、もう一度やり直してください
任意の整数n> 0に対して、関数gをg(n)= n XOR(n * 2)として定義します。 所与のx> 0、最小の整数を見つける> 0、YようグラムK(Y)= X一部について> 0 kは。 例 x = 549 549 = 483 XOR (483 * 2) (as binary: 1000100101 = 111100011 XOR 1111000110) 483 = 161 XOR (161 * 2) (as binary: 111100011 = 10100001 XOR 101000010) つまり、g 2(161)= 549です。g(n)= 161のようなnは存在しないため、これ以上先に進むことはできません。したがって、x = 549の期待される出力はy …

11
これらのサイコロでこの言葉を綴ることができますか?
手紙のサイコロは、単語ゲームでは一般的です。たとえば、おかしな単語をボグルサイコロで綴ろうとするのは楽しいことです。ほんの一握りのサイコロをつかむと、特定の単語を綴ることができなくなる可能性があります。この課題は、そのアイデアの一般化です。 チャレンジ それぞれが少なくとも1つの顔と単語を持つサイコロのリストが与えられたら、あなたの仕事は、与えられたサイコロを使用してその単語を綴ることができるかどうかを判断することです(その場合、それは真実の結果を返すはずです)。各ダイから1文字のみ使用でき、ダイは1回しか使用できません。指定されたサイコロをすべて使用する必要はありません。 例 サイコロ[[A]、[C]、[T]]および文字列CATを使用した簡単な例では、結果はtrueです。BATは、Bが付いたサイコロがないため、もちろんfalseを返します。 サイコロのセットとして[[A、E、I、O、U]、[A、B、C、T]、[N、P、R]]が与えられた場合、ART、TON、およびCURに対してtrueを返します。 、ただし、CAT、EAT、およびPANについてはfalseです。これらの文字列はサイコロを再利用する必要があるためです。また、十分なサイコロがないため、CRABにこれらのサイコロを綴ることができないこともかなり明白です。 サイコロのセットとして[[A、B、C]、[A、E、I]、[E、O、U]、[L、N、R、S、T]]が与えられた場合、次のことができます。 CAT、BEE、BEAN、TEA、BEET、およびBANをスペルしますが、LONE、CAB、BAIL、TAIL、BAA、またはTONをスペルすることはできません 同じダイが複数存在する場合があります。[[A、B、C]、[A、B、C]、[A、B、C]]が与えられた場合、CAB、BAA、AAAなどを綴ることができます...その中にB、またはC。 ルール 標準的な抜け穴を悪用しない これはcode-golfなので、最短のコードが優先されます。 単語とサイコロの両方が大文字のみで構成されていると仮定することができます。 単語は常に少なくとも1文字の長さであり、常に少なくとも1つのダイが存在すると想定できます。 あなたはダイスが同じ文字を複数持つことはないと想定するかもしれません。 入力および出力は、任意の便利な形式にすることができます。

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