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

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

5
コードGolfinator-3000
誰もが知っている、追加inator-3000の任意の名詞の最後には、それ道クーラーになります。しかし、他に何が単語をクールにすることができますか? 入力としてASCII文字列を指定すると、単語のクールさを出力します。 涼しさの計算 単語のクールさを計算するには、4つの要素があります。 言葉そのもの。基本スコアは、大文字の数に1000を掛けたものです。 終了番号。(例えばburninator-などの単語の末尾の番号3000)ベーススコアに加算され、しかし数が4つの以上の数字である場合、それらはあまりにも貪欲されていると数は無視されるべきです。 コネクタ。終了番号の前のスペースは1000を追加しますが、ハイフンは2000を追加しますが、他の記号、または記号がない場合は効果がありません。 接尾辞。単語がで終わる場合、ator最終スコアを2倍にします。で終わる場合inatorは、スコアを3倍にします。これらは大文字と小文字を区別しません。 したがって、たとえばBurninator-3000次のように計算できます。 1 Capital letter - Base Score: 1000 (1000(base) + 3000(number) + 2000(hyphen)) * 3(suffix) = 18000 テストケース Burninator-3000 -> 18000 Burnator3000 -> 8000 BurNinator 100 -> 9300 BuRnInAtOr-7253 -> 42759 burn -> 0 burn- -> 0 bUrn-1 -> 3001 inator-7 -> …
22 code-golf  string 

13
連続する整数を折りたたみます
関連:私がしなければならない数学の問題をいくつ教えてください! チャレンジ 厳密に正の厳密に昇順の整数リストLおよびLの整数3≤N≤長さが与えられた場合、長さ≥NのLの連続整数実行の中間整数を単一のダッシュで置き換え-ます。 ルール 水平方向の空白は関係ありません。 オプションで、言語のデフォルトのリスト形式のイントロデューサー、セパレーター、およびターミネーター文字を保持できます。以下のフォーマットの例を参照してください。 データ例 これらの例はすべてを使用していますL = 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24。 N = 3 → 3 5 - 8 10 - 12 14 16 - 22 24 N = 4 → 3 5 - 8 …

12
どのくらい曇りですか?
チャレンジ 空の画像を指定すると、oktasで雲量を出力する必要があります。提供されるイメージはイメージファイル(タイプはユーザー次第)であり、出力はSTDOUTになります。 オクタス 気象学では、オクタは、気象観測所などの任意の場所での雲量を表すために使用される測定単位です。空の状態は、空の8分の何が雲で覆われているかによって推定され、0オクタ(完全に晴天)から8オクタ(完全に曇り)までの範囲です。 空は常に正午頃の写真になります(つまり、赤/夜空ではなく、青空)。 雲の色は、常に次のパターンに従う色になります。 #ABCDEF どこAB >= C0、CD >= C0そしてEF >= C0。 または、RGB: (A, B, C) どこA >= 192、B >= 192そしてC >= 192。 oktasに関連するカバレッジの割合は次のとおりです。 0% - 0 oktas 12.5% - 1 okta 25% - 2 oktas 37.5% - 3 oktas 50% - 4 oktas 62.5% - 5 oktas …

6
コトリンでのゴルフのヒント
Google がAndroid開発のKotlinの公式サポートを最近発表したことを考えると、この比較的新しいJVM言語の素晴らしいゴルフのヒントについてコミュニティに投票するのがタイムリーかもしれないと思いました。 Kotlinには、JVM兄弟の機能のユニークな組み合わせが含まれており、ゴルフに魅力的な可能性があります。 演算子のオーバーロード local、infix、およびstatic拡張関数 スマートキャスト Groovyスタイルのタイプセーフビルダー 型エイリアス 範囲 広範な機能コレクションパッケージ スクリプトのサポート それでは、Kotlinプログラムから最後の数バイトを圧縮するにはどうすればよいですか?回答ごとに1つのヒントをお願いします。
22 code-golf  tips 

20
それはスーパープライムですか?
バックグラウンド スーパープライムは、インデックスがすべて素数のリストでも素数である素数です。シーケンスは次のようになります。 3、5、11、17、31、41、59、67、83、109、127、157、179、191、... これは、OEISのシーケンスA006450です。 チャレンジ 正の整数を指定して、それがスーパープライムかどうかを判断します。 テストケース 2:偽 3:本当 4:偽 5:true 7:偽 11:true 13:偽 17:真 709:true 851:偽 991:真 得点 これはcode-golfであるため、各言語の最短の回答が優先されます。

12
ポールに色をつけて
あなたの仕事はポールをペイントすることであり、クライアントが4つの赤いセクションと3つの黄色のセクションでポールをペイントするように要求するとしましょう。次のように簡単に実行できます。 r y r y r y r 黄色と赤のストライプだけで。ここで、クライアントが2つの赤いセクション、2つの黄色のセクション、1つの緑のセクションでポールをペイントするように要求したとしましょう。ポールをペイントする方法はいくつかあります g y r y r y g r y r y r g y r y r y g r y r y r g g r y r y r g y r y r y g r y r …

29
隣接する複製を折りたたむ
チャレンジ 整数のリストを指定すると、隣接する等しいアイテムのすべてのペアを繰り返し削除した後、これらの整数のリストを返します。 同じ数の奇数長の実行がある場合、ペアの一部ではなく、そのうちの1つが残ることに注意してください。 例: [0, 0, 0, 1, 2, 4, 4, 2, 1, 1, 0] まず、あなたは削除する必要があり0, 0、4, 4および1, 1取得するには: [0, 1, 2, 2, 0] 今、あなたは削除する必要があります2, 2: [0, 1, 0] これが最終結果です。 テストケース []-> [] [1]-> [1] [1、1]-> [] [1、2]-> [1、2] [11、11、11]-> [11] [1、22、1]-> [1、22、1] [-31、46、-31、46]-> [-31、46、-31、46] [1、0、0、1]-> [] [5、3、10、10、5]-> [5、3、5] [5、3、3、3、5]-> …

18
文字列を三角形に折ります
長さが4で割り切れる文字列を指定すると、以下に示すように三角形を作成します。 文字列がの場合、abcdefghijkl三角形は次のようになります。 a b l c k defghij 文字列がの場合、iamastringwithalengthdivisiblebyfour三角形は次のようになります。 i a r m u a o s f t y r b i e n l gwithalengthdivisib 文字列がの場合、thisrepresentationisnotatriangle三角形は次のようになります。 t h e i l s g r n e a p i r r esentationisnotat ノート 文字列はからaまでの文字のみで構成されzます。 形状が壊れていない限り、先頭と末尾の空白と改行は許可されます。 出力としての文字列のリストが許可されています。 これはcode-golfです。バイト単位の最短回答が優先されます。標準の抜け穴が適用されます。

14
n番目のフィボナッチ数を含むn番目のフィボナッチ数を出力します!
チャレンジ n入力として正の整数を取り、サブトリングとしてth Fib#nを含むthフィボナッチ数(全体を通してFib#として短縮)を出力するプログラムを作成する必要がありますn。この課題のために、フィボナッチ数列はで始まります1。 テストケースとして、または課題を明確にするための例として使用できる例をいくつか示します(後者については、不明な点を説明するコメントを下に残してください)。 n=1 Fib#s: 1 ^1 1st Fib# that contains a 1 (1st Fib#) Output: 1 n=2 Fib#s: 1, 1 ^1 ^2 2nd Fib# that contains a 1 (2nd Fib#) Output: 1 n=3 Fib#s: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 ^1 …

3
Scrappers v0.1:Mer兵プログラマー
都市が凶悪犯や泥棒によって圧倒されている荒廃した戦争で荒廃した世界では、文明は以前は無人の風景に散らばっていた小さな孤立した産業協同組合の形でそれ自体を改革しました。これらのコミュニティの存在は、「スクレイパー」と呼ばれるmerc兵労働者のチームに依存しており、彼らは小屋に売るための貴重な材料を手付かずの領域で探します。これらの材料がますます不足するにつれて、廃棄はますます困難で危険な職業になっています。壊れやすい人間の労働者は、ほとんどが「ロボット」と呼ばれるリモートロボットスタンドインに置き換えられており、典型的なmerc兵は武装した溶接機よりも熟練したプログラマである可能性が高くなります。廃棄における人間の存在が減少するにつれて、merc兵グループ同士の尊敬もまた減りました。ボットは、スクラップを収集するだけでなく、それを守るために装備されており、場合によってはそれを強制的に取得します。ボットプログラマーは、ライバルスクラッパーをしのぐための新しい戦略をたゆみなく考案し、攻撃的なボットを増やし、コミュニティの壁の外に飛び出す人間にとっては別の危険をもたらします。 (ええ、ロゴは陽気に切り取られます) Scrappersへようこそ! これはスクラップ収集と工場が実装されていない初期バージョンのスクレイパーです。基本的には「撃つ」ことです。 あなたは、ライバルのスクレーパーグループを勝ち抜くためにボットをリモートで実行するプログラムを作成するmerc兵プログラマです。ボットは、把持と切断、攻撃用具を装備した多くの付属物に囲まれた、電源とシールドジェネレーターを中心にしたクモのような機械です。発電機は、ティック(スクレーパーの時間単位)ごとに12の電力ユニット(pu)を生成できます。あなたは、この力がボットの3つの主要なニーズにどのように分配されるかを制御します:移動、シールド、および火力。 スクレイパーボットは非常に機敏なマシンであり、遭遇する障害物の上、下、および周囲を簡単に移動できます。したがって、衝突はプログラムで考慮する必要のあるものではありません。整数で処理する限り、移動に使用できる12puのすべて、一部、またはすべてを自由に割り当てることができます。ボットの移動関数に0puを割り当てると、ボットは動かなくなります。2puを割り当てると、ボットはティックごとに2距離単位(du)移動でき、5puは5du / tickになり、11puは11du / tickになります。 ボットのシールドジェネレーターは、体の周りに偏向エネルギーの泡を投影します。シールドはポッピングする前に最大1ダメージまで撓むことができるため、シールドジェネレーターがシールドを元の位置に戻すのに十分な電力を生成するまでボットを露出したままにします。ボットが利用できる12puのすべて、一部、またはどれもをシールドに割り当てることは自由です。ボットのシールドに0puを割り当てることは、ボットがシールドを生成しないことを意味します。2puを割り当てると、ボットは12ティックのうち2ティック、または6ティックごとに1回、新しいシールドを生成できます。5puでは、12ティックごとに5シールドの再生成が行われます。 溶接レーザーに電荷を蓄積することにより、ボットは短距離で損傷ビームをかなりの精度で発射できます。シールドの生成と同様に、ボットの発射速度はレーザーに割り当てられたパワーに依存します。ボットのレーザーに0puを割り当てることは、ボットが発砲しないことを意味します。2puを割り当てると、ボットは12ティックごとに2発を発射できるようになります。ボットのレーザーは、物体に遭遇するか、無用に分散するまで移動するため、友好的な火に注意してください。ボットは非常に正確ですが、完全ではありません。精度に+/- 2.5度のばらつきがあるはずです。レーザービームが進むにつれて、その粒子は、ビームが十分な距離で効果的に無害になるまで、大気によって徐々に偏向されます。レーザーは、ポイントブランクの範囲で1ダメージを与え、移動するボットの長さごとにダメージを2.5%減らします。 Scrapperボットは基本的な機能を処理するのに十分な自律性を備えていますが、プログラマーであるあなたに依存してグループとして役立つようにします。プログラマーとして、各ボットに対して次のコマンドを発行できます。 MOVE:ボットが移動する座標を指定します。 ターゲット:電力割り当てが許可されたときに狙いを定めて発砲するボットを特定します。 パワー:移動、シールド、火力の間でパワーを再配分します。 テクニカルゲームの詳細 あなたが精通する必要がある3つのプログラムがあります。ゲームエンジンは重いリフターで、プレーヤープログラムが接続することをTCPのAPIを提供します。プレイヤープログラムはあなたが書くものであり、ここでバイナリを使用したいくつかの例を提供しました。最後に、レンダラーはゲームエンジンからの出力を処理して、戦闘のGIFを生成します。 ゲームエンジン ここからゲームエンジンをダウンロードできます。ゲームが起動されると、ポート50000(現在は構成不可)でプレーヤー接続のリッスンを開始します。2つのプレーヤー接続を受信すると、READYメッセージをプレーヤーに送信し、ゲームを開始します。プレーヤープログラムは、TCP APIを介してコマンドをゲームに送信します。ゲームが終了すると、scrappers.jsonという名前のJSONファイル(現在は構成できません)が作成されます。これは、レンダラーがゲームのGIFを作成するために使用するものです。 TCP API プレーヤープログラムとゲームエンジンは、改行で終了するJSON文字列をTCP接続でやり取りすることで通信します。送信または受信できるJSONメッセージは5つだけです。 レディメッセージ READYメッセージは、ゲームからプレーヤープログラムに送信され、一度だけ送信されます。このメッセージは、プレーヤープログラムにプレーヤーID(PID)が何であるかを伝え、ゲーム内のすべてのボットのリストを提供します。PIDは、どのボットが味方か敵かを判断する唯一の方法です。以下のボットフィールドの詳細。 { "Type":"READY", // Message type "PID":1, // Player ID "Bots":[ // Array of bots { "Type":"BOT", "PID":1, "BID":1, "X":-592, ... }, ... ] …

1
カークマンの女子高生問題を展開
なじみのない人のために、カークマンの女子高生問題は次のようになります。 学校の15人の若い女性は、連続して7日間、3人並んで歩きます。2人が2度並んで歩かないように、毎日手配する必要があります。 私たちは、ネストされたようにこれを見て可能性が3で5リスト(または行列): [[a,b,c] [d,e,f] [g,h,i] [j,k,l] [m,n,o]] 基本的に、元の問題の目標は、2つの文字が1行を複数回共有しないように、上記のマトリックスを配置する7つの異なる方法を見つけることです。MathWorld(上記リンク)から、このソリューションを見つけます。 [[a,b,c] [[a,d,h] [[a,e,m] [[a,f,i] [[a,g,l] [[a,j,n] [[a,k,o] [d,e,f] [b,e,k] [b,h,n] [b,l,o] [b,d,j] [b,i,m] [b,f,g] [g,h,i] [c,i,o] [c,g,k] [c,h,j] [c,f,m] [c,e,l] [c,d,n] [j,k,l] [f,l,n] [d,i,l] [d,k,m] [e,h,o] [d,o,g] [e,i,j] [m,n,o]] [g,j,m]] [f,j,o]] [e,g,n]] [i,k,n]] [f,h,k]] [h,l,m]] さて、女子学生の数が異なる場合はどうなりますか?8日目がありますか?†これが私たちの挑戦です。 †ここでない††、必ずしもではないが、他の配列の次元のために ††我々は簡単にするため、これを表示することができa、他のすべての文字を持つ行に現れます。 チャレンジ: 女子学生の配列(すなわちの寸法(列よりも行、)の入力が与えられ3 x …

24
バイナリ定規を作成する
番号nを指定すると、このパターンの最初のn列が生成されます。 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ################################ ... (1-indexed)nの列の高さは、nのバイナリ表現の末尾の0ビット数に1を加えたものです。その結果、最下層にはすべての列が、2番目の層には2列ごとに、3番目の層には4列ごとに、などが入力されます。 ルール 任意の標準的な方法で入出力できます。 入力は1から999までの整数であると仮定できます。 パターンが完全である限り、出力には任意の量の空白を含めることができます。 パターンは1インデックスで、ここに示されているのと同じ形式である必要があります。 の代わりに任意の単一の非空白文字を使用でき#ますが、スペース文字を変更することはできません。 テストケース 1 # 2 # ## 3 # ### …

30
最小の倍数が9回実行され、その後にオプションの0回の実行が続く
正の整数が与えられた場合、9の実行とそれに続くオプションの0の実行である最小の正の整数倍数を見つけます。つまり、regexに一致する最小の正の整数倍数を見つけます/^9+0*$/。 たとえば、与えられた正の整数が2の場合、90は2の正の整数倍であり、正規表現と一致する最小の整数であるため、90を返し/^9+0*$/ます。 テストケース: n f(n) 1 9 2 90 3 9 4 900 5 90 6 90 7 999999 8 9000 9 9 10 90 11 99 12 900 13 999999 14 9999990 15 90 16 90000 これはcode-golfです。バイト単位の最短回答が優先されます。標準の抜け穴が適用されます。

19
異なる数、同じ重量
バックグラウンド 整数のハミング重みは、バイナリ表現の1の数です。このチャレンジでは、整数は32ビットで表され、符号なしです。 チャレンジ 0から2 ^ 32-1までの整数(非包括的)が与えられた場合、同じ範囲内で同じハミング重みを持つ異なる整数を出力します。 例 Input (Decimal) | Input (Binary) | Hamming weight | Possible output (Decimal) 46 | 0b0010 1110 | 4 | 15 12 | 0b0000 1100 | 2 | 3 1 | 0b0000 0001 | 1 | 2 3 | 0b0000 0011 | 2 | …

19
CSI:Minecraftのアイテム
Minecraft 1.12は明日リリースされるので、お祝いしましょう! Minecraftの何かのアイテムの数を表す負でない整数Nを取り込むコードを記述します。チェスト、スタック、アイテムの数をNにすると、プレーヤーにとってより役立つ方法で出力します。形式を使用する XcYsZi どこで X N個のアイテムで完全に満たせるチェストの数、 Y は、チェストを満たした後に残っているアイテムで埋めることができるスタックの数です。 Z チェストとスタックを満たした後に残っているアイテムの数。 ご了承ください: 64個のアイテムがスタックに収まります。(16にスタックするか、スタックしないアイテムは無視します。) 27スタックが胸に収まります。(これらはダブルチェストではなく、シングルチェストです。) したがってY、26を超える場合、またはZ 63を。 この形式の注意点は、何かがゼロの場合、その用語は印刷されないことです。 したがって、たとえば、YゼロXおよびZゼロ以外の場合、形式はのようになりXcZiます。 同様に、YとZがゼロとX非ゼロの場合、形式はになりますXc。 ここでの例外は、Nがゼロの場合です。その後0iは、空の文字列ではなく出力です。 N個のアイテムはすべて同じタイプであり、すべてスタック可能であると想定できます。 3つの数字のリストまたはタプルを出力することはできません。スペースまたはコンマを使用せずに、正確な「csi」表記の文字列をこの順序で指定する必要があります。 参考までに、アイテムのスタックで完全に満たされたチェストは次のとおりです。 テストケース in -> out 0 -> 0i 1 -> 1i 2 -> 2i 62 -> 62i 63 -> 63i 64 -> 1s 65 -> 1s1i 66 -> …

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