タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

30
大文字と小文字の比率
このチャレンジでは、あなたとあなたの友人は大文字と小文字のどちらが良いかについて議論していますか?調べるには、これを行うプログラムを作成します。 エソランは友達を怖がらせ、冗長なコードは怖いので、コードはできるだけ短くする必要があります。 例 PrOgRaMiNgPuZzLeS & CoDe GoLf 0.52 uppercase DowNGoAT RiGHtGoAt LeFTGoat UpGoAT 0.58 uppercase Foo BaR Baz 0.56 lowercase 仕様書 入力はASCII文字のみで構成されます。アルファベット以外の文字はすべて無視する必要があります。各ケースには少なくとも1つの文字があります 出力は、アルファベット文字の合計量の中で最も頻繁に現れるケースの量でなければなりません。少なくとも小数点以下2桁まで正確な小数でなければなりません。大文字がより頻繁に現れる場合、出力はuppercase、またはで終わる必要がありlowercaseます。 大文字と小文字が同じ量になることはありません。
28 code-golf  string 

12
パンケーキの反転
でパンケーキソートのみ許可される操作をシーケンスの一部の接頭辞の要素を逆にすることです。または、パンケーキのスタックを考えます。スタックのどこかにヘラを挿入し、スパチュラの上にすべてのパンケーキをひっくり返します。 たとえば6 5 4 1 2 3、最初の6要素(シーケンス全体)を最初に反転し、中間結果を生成して3 2 1 4 5 6から最初の3要素を反転してに到達することにより、シーケンスをソートできます1 2 3 4 5 6。 操作が1つしかないため、ソートプロセス全体を整数のシーケンスで記述できます。各整数は、pr flipを含める要素/パンケーキの数です。上記の例では、ソート順序はになります6 3。 別の例:4 2 3 1でソートできます4 2 3 2。中間結果は次のとおりです。 4 2 3 1 flip 4: 1 3 2 4 flip 2: 3 1 2 4 flip 3: 2 1 3 4 flip …

3
重い箱の積み重ね
重い箱がたくさんあるので、できるだけ少ない数のスタックに積み重ねたいと思っています。問題は、サポートできる以上のボックスをスタックできないため、より重いボックスをスタックの最下部に配置する必要があることです。 チャレンジ 入力:箱の重量のリスト(kg単位)。 出力:ボックスのスタックを説明するリストのリスト。これは、入力に可能な限り少ない数のスタックを使用する必要があります。有効なスタックであるためには、スタック内の各ボックスの重量が、その上のすべてのボックスの重量の合計以上でなければなりません。 有効なスタックの例 (下から上へ) [3] [1、1] [3、2、1] [4、2、1、1] [27、17、6、3、1] [33、32、1] [999、888、99、11、1] 無効なスタックの例 (下から上へ) [1、2] [3、3、3] [5、5、1] [999、888、777] [4、3、2] [4321、3000、1234、321] テストケースの例 1 IN: [1, 2, 3, 4, 5, 6, 9, 12] OUT: [[12, 6, 3, 2, 1], [9, 5, 4]] 2 IN: [87, 432, 9999, 1234, 3030] OUT: [[9999, …

15
自己識別座標
整数を指定して、長さの次元をn持つ配列を構成するプログラムまたは関数を作成します。各要素は、独自の座標の識別子です。つまり、1つの配列から始めて、配列を追加します。各配列には、深さまで、より多くの配列が含まれます。最も深い配列の要素は、完全な配列のどこにあるかを示す座標です。nnnnn-1 説明がわかりにくい場合のいくつかの例。 n = 1 ["1"] n = 2 [ ["11", "12"], ["21", "22"] ] n = 3 [ [ ["111","112","113"], ["121","122","123"], ["131","132","133"] ], [ ["211","212","213"], ["221","222","223"], ["231","232","233"] ], [ ["311","312","313"], ["321","322","323"], ["331","332","333"] ] ] ここで、「321」は、3番目の配列の2番目の要素の1番目の要素であることを意味します。 ルール: 座標と次元(n)には、0または1のインデックスを付けることができます n曖昧な出力を防ぐために、両方のインデックスオプションで10未満の1桁であると仮定することができます。 IOは柔軟です。 特に、座標は、明確である限り、配列、文​​字列などにすることができます。"321" => [3,2,1] 出力は、先行ゼロの有無にかかわらず、基数10の整数にすることができます。 座標は、一貫している限り、必要に応じて逆の順序にすることができます。「321」=>「123」 出力は、必ずしも言語の配列構造である必要はありません。配列の開始、配列の終了、および要素を区切るための明確な明確なマーカーがある限り。 の出力はn=11になります 出力が非定型である場合は、必ず形式を説明してください。 これはコードゴルフなので、各言語で最短のソリューションが勝ちです!
27 code-golf 

13
最小の魔法の合計にする
この課題を短くしてください。 4つの番号が与えられます:p1、p2、p3、p4。 数値のマジックサムは次のように定義されます。 magic_sum = |p1 - p2| + |p2 - p3| + |p3 - p4| + |p4 - p1| 上記の整数値(p1、p2、p3、またはp4)のいずれかのみを変更できます。値の魔法の合計が最小値になるように値を変更する必要があります。 例えば: p1、p2、p3、p4 = 17、-6、15、33。この場合、マジックサムの値は78です。 ここで-6を16に変更すると、マジックサムの値は36になります。これは達成可能な最小値です。 数値は正または負の整数になる可能性があることに注意してください。 これはコードゴルフなので、コードの最小バイトが勝ちます。ブラウニーは、レクリエーション言語よりも実用的な言語を使用していることを指摘しています。4日はあなたとありますように。 繰り返します: サンプル1 入力1 17 -6 15 33 出力1 36 説明1 -6は16に置き換えることができ、達成可能な最小の魔法の合計を与えます。 サンプル2 入力2 10 10 10 10 出力2 0 or 2 どちらでもかまいません …

16
マトリックス竜巻に注意してください!
マトリックス竜巻は、他の竜巻とまったく同じです。中心の周りを回転するもので構成されています。この場合、空気の代わりにマトリックスの要素。 マトリックス竜巻の例を次に示します。 まず、マトリックスを正方形のリングに分割することから始めます。各セクションは、境界から同じ距離だけ離れた要素で構成されます。これらのセクションは、中心の周りを時計回りに回転します。実際の竜巻では、重度は中心に向かって増加し、マトリックス竜巻の回転ステップも同様に増加します。最も外側のセクション(赤いセクション)は1ステップ、次のセクション(黄色)は2ステップ回転します。に。回転ステップは、中心を中心とした90°の回転です。 仕事: あなたの仕事は、受け入れれば、入力として正方行列を受け取り、それに竜巻効果を適用し、結果の行列を出力する関数またはプログラムを書くことです。 入力: 入力は次の正方行列である必要nがありn >= 1ます。マトリックスの要素について何も仮定する必要はありません。どんな要素でも構いません。 出力: 入力行列にトロナド効果を適用した結果となる、同じ次数の正方行列。 例: 次の行列n = 1: [['Hello']] ===> [['Hello']] 次の行列n = 2: [[1 , 2], ===> [[5 , 1], [5 , 0]] [0 , 2]] 次の行列n = 5: [[A , B , C , D , E], [[+ , 6 , …
27 code-golf  matrix 

20
蘇州の数字に変換
蘇州の数字(蘇州碼子;花碼)は中国の10進数です: 0 〇 1 〡 一 2 〢 二 3 〣 三 4 〤 5 〥 6 〦 7 〧 8 〨 9 〩 これらはアラビア数字のように機能しますが、セット{1, 2, 3}に属する連続した数字がある場合、あいまいさを避けるために数字は垂直ストローク表記{〡,〢,〣}と水平ストローク表記{一,二,三}を交互に使用します。このような連続したグループの最初の数字は、常に垂直ストローク表記で記述されます。 タスクは、正の整数を蘇州の数字に変換することです。 テストケース 1 〡 11 〡一 25 〢〥 50 〥〇 99 〩〩 111 〡一〡 511 〥〡一 2018 〢〇〡〨 123321 〡二〣三〢一 1234321 〡二〣〤〣二〡 9876543210 …

13
有効なバドミントンスコア?
前書き: バドミントンに関連する他のチャレンジは、たった1つしかありませんでした。自分でバドミントンをしているので(過去13年間)、バドミントンに関連するいくつかの課題を追加すると思いました。ここで最初のもの: チャレンジ: 入力: 2つの整数 出力:任意の3つの異なる一意の出力の1つ。入力が有効なバドミントンスコアであり、セットが勝者で終了したことを示すもの。入力が有効なバドミントンスコアであり、セットがまだ使用中であることを示すもの。入力が有効なバドミントンスコアではないことを示すもの。 バドミントンでは、両方のプレーヤー(ペア)が0ポイントで開始し、2人のプレーヤー(ペア)のうちの1人が少なくとも2ポイント差で最大30-29までのスコア21に達したら停止します。 したがって、これらは有効なバドミントンスコアであり、セットが終了したことを示すすべての可能な入力ペアです(どちらの順序でも)。 [[0,21],[1,21],[2,21],[3,21],[4,21],[5,21],[6,21],[7,21],[8,21],[9,21],[10,21],[11,21],[12,21],[13,21],[14,21],[15,21],[16,21],[17,21],[18,21],[19,21],[20,22],[21,23],[22,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,30]] そして、これらはすべて有効なバドミントンスコアであることを示す入力ペア(いずれの順序でも)ですが、セットはまだ有効です: [[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[0,10],[0,11],[0,12],[0,13],[0,14],[0,15],[0,16],[0,17],[0,18],[0,19],[0,20],[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7],[1,8],[1,9],[1,10],[1,11],[1,12],[1,13],[1,14],[1,15],[1,16],[1,17],[1,18],[1,19],[1,20],[2,2],[2,3],[2,4],[2,5],[2,6],[2,7],[2,8],[2,9],[2,10],[2,11],[2,12],[2,13],[2,14],[2,15],[2,16],[2,17],[2,18],[2,19],[2,20],[3,3],[3,4],[3,5],[3,6],[3,7],[3,8],[3,9],[3,10],[3,11],[3,12],[3,13],[3,14],[3,15],[3,16],[3,17],[3,18],[3,19],[3,20],[4,4],[4,5],[4,6],[4,7],[4,8],[4,9],[4,10],[4,11],[4,12],[4,13],[4,14],[4,15],[4,16],[4,17],[4,18],[4,19],[4,20],[5,5],[5,6],[5,7],[5,8],[5,9],[5,10],[5,11],[5,12],[5,13],[5,14],[5,15],[5,16],[5,17],[5,18],[5,19],[5,20],[6,6],[6,7],[6,8],[6,9],[6,10],[6,11],[6,12],[6,13],[6,14],[6,15],[6,16],[6,17],[6,18],[6,19],[6,20],[7,7],[7,8],[7,9],[7,10],[7,11],[7,12],[7,13],[7,14],[7,15],[7,16],[7,17],[7,18],[7,19],[7,20],[8,8],[8,9],[8,10],[8,11],[8,12],[8,13],[8,14],[8,15],[8,16],[8,17],[8,18],[8,19],[8,20],[9,9],[9,10],[9,11],[9,12],[9,13],[9,14],[9,15],[9,16],[9,17],[9,18],[9,19],[9,20],[10,10],[10,11],[10,12],[10,13],[10,14],[10,15],[10,16],[10,17],[10,18],[10,19],[10,20],[11,11],[11,12],[11,13],[11,14],[11,15],[11,16],[11,17],[11,18],[11,19],[11,20],[12,12],[12,13],[12,14],[12,15],[12,16],[12,17],[12,18],[12,19],[12,20],[13,13],[13,14],[13,15],[13,16],[13,17],[13,18],[13,19],[13,20],[14,14],[14,15],[14,16],[14,17],[14,18],[14,19],[14,20],[15,15],[15,16],[15,17],[15,18],[15,19],[15,20],[16,16],[16,17],[16,18],[16,19],[16,20],[17,17],[17,18],[17,19],[17,20],[18,18],[18,19],[18,20],[19,19],[19,20],[20,20],[20,21],[21,21],[21,22],[22,22],[22,23],[23,23],[23,24],[24,24],[24,25],[25,25],[25,26],[26,26],[26,27],[27,27],[27,28],[28,28],[28,29],[29,29]] 整数のその他のペアは、無効なバドミントンスコアになります。 チャレンジルール: I / Oは柔軟なので、次のとおりです。 入力を2つの数字のリストとして取得できます。STDINまたは関数パラメーターを介した2つの分離された数値。2つの文字列。等 出力は、選択した3つの異なる一意の値になります。整数(すなわちすることができ[0,1,2]、[1,2,3]、[-1,0,1]、など)。ブール値(つまり[true,false,undefined/null/empty])にすることができます。文字/文字列(つまり["valid & ended","valid","invalid"])にすることができます。等 回答で使用したI / Oを指定してください! 入力整数は、最低から最高、またはその逆に事前に順序付けすることができます。 入力整数は負になる場合があり、その場合はもちろん無効です。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーターおよび戻り値型、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテスト(TIOなど)へのリンクを追加してください。 また、回答の説明を追加することを強くお勧めします。 テストケース: これらのテストケースは有効であり、セットは終了しています。 0 21 12 21 21 23 28 30 29 30 これらのテストケースは有効ですが、セットはまだ使用中です。 0 …

27
C ++ 14整数リテラルを解析します
http://en.cppreference.com/w/cpp/language/integer_literalによると、整数リテラルは10進数/ 16進数/ 8進数/バイナリリテラルとオプションの整数接尾辞で構成されます。このチャレンジでは使用されません。 10進リテラルはa non-zero decimal digit (1, 2, 3, 4, 5, 6, 7, 8, 9), followed by zero or more decimal digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)です。 8進リテラルはthe digit zero (0) followed by zero or more octal digits (0, 1, 2, 3, 4, 5, …

24
時間を設定する
矢印キーで制御できる次の24時間時計を想像してください。 ╔══╗ ┌──┐ ║00║:│00│ ╚══╝ └──┘ HH mm 上矢印を2回(↑↑)押すと、現在フォーカスされている時間入力が増加します。 ╔══╗ ┌──┐ ║02║:│00│ ╚══╝ └──┘ HH mm 右矢印(→)を押すと、他の入力がフォーカスされます。 ┌──┐ ╔══╗ │02│:║00║ └──┘ ╚══╝ HH mm 下矢印を3回(↓↓↓)押すと、この入力が減少します。 ┌──┐ ╔══╗ │02│:║57║ └──┘ ╚══╝ HH mm 簡単に言えば: 上矢印(↑)は、現在アクティブな入力を増やします。 下矢印(↓)は、アクティブな入力を減らします。 右矢印(→)は、フォーカスを右入力に移動します。 左矢印(←)は、左入力にフォーカスを移動します。 上下の動きは、時間の入力に対して期待どおりにループします。 左右の動きはループしません。 チャレンジ クロックは00:00、時間入力がアクティブな状態で始まります(最初の回路図を参照)。入力コマンドのリストを指定して、結果の時間をHH:mm形式で出力します。 入力は文字列またはリスト(または同等の言語)のいずれかです。異なる入力方向は以下のオプションのいずれかです。 ↑↓←→ udlr ^v<> プログラムにGUIがある場合、実際の矢印キーを押す 標準の抜け穴が適用されます。 テストケース ↑↑→↓↓↓ = …
27 code-golf  date 

8
貪欲なカッター
iBugは最近、複合材でありながら貴重な素材でできた長いバーを手に入れました。バーは非常に長いので、iBugはクレジットで簡単に販売できないので、彼はそれを削減したいと考えています。バーは、壊れやすい魔法の素材で作られているため、部品が破損すると、同じ素材で作られたバーのすべての部品も破損し、勝手に切断することが難しくなります。 iBugは、バーをできるだけ多くの部分にカットしたいと考えています。彼はまた、非常に短いプログラムとコードゴルフが大好きなので、彼は問題の抽象的な分析を行いました。 iBugのマジックバーは、次のように文字列(または必要に応じて文字列または配列)として表されます。 aaabbccccccbbbaaacccccaabbbaaaaa 文字列の各文字は、1つの魔法の素材を表します。バーは常にRegEx ^\w*$と一致するため、バーには最大63個のマテリアルが存在する場合があります。「部分」とは、スペースで区切られていない任意の文字の連続したシーケンスです。 iBugは、ゼロ個以上の文字セットが完全に削除された場合(スペースに置き換えられた場合)、取得できる最大部分を計算するプログラムを作成し、その数をiBugに伝えてほしいと考えています。 例1: In: aaabbccccccbbbaaacccccaabbbaaaaa Out: 4 説明:bバーから完全に削除された場合、iBugは4つのパーツを取得できます。彼はまた、除去することにより、4部を得ることができますbし、c下に示すように、 aaabbccccccbbbaaacccccaabbbaaaaa # Original string aaa cccccc aaacccccaa aaaaa # Remove 'b' aaa aaa aa aaaaa # Remove 'b' and 'c' そして、これがiBugがこのバーから取得できる部品の最大数です 例2: In: 111aa___9999____aaa99111__11_a_aa999 Result: 111aa 9999 aaa99111 11 a aa999 Out: 6 説明:アンダースコアのみを削除することにより、iBugはバーから6つの部分を取得できます。これは最大です。 例3: In: __________ …
27 code-golf  string 

30
同一番号の各シリーズをインプレースで列挙する
厳密に正の整数のリストが与えられた場合、各個別の番号を調べて、そのすべての出現を新しいシリーズの連続するインデックス(ゼロまたは1ベース)に置き換えます。 例 []→ []/[] [42]→ [0]/[1] [7,7,7]→ [0,1,2]/[1,2,3] [10,20,30]→ [0,0,0]/[1,1,1] [5,12,10,12,12,10]→ [0,0,0,1,2,1]/[1,1,1,2,3,2] [2,7,1,8,2,8,1,8,2,8]→ [0,0,0,0,1,1,1,2,2,3]/[1,1,1,1,2,2,2,3,3,4] [3,1,4,1,5,9,2,6,5,3,5,9]→ [0,0,0,1,0,0,0,0,1,1,2,1]/[1,1,1,2,1,1,1,1,2,2,3,2]

9
ひもを折りたたむ
このチャレンジでは、入力としてアルファベット文字列が与えられます。与えられた入力の「アンチストリング」を、すべての文字の大文字と小文字を逆にしたストリングとして定義します。例えば AaBbbUy -> aAbBBuY 入力として文字列を受け取り、アンチストリングも連続したサブストリングである最長の連続したサブストリングを検索するプログラムを作成する必要があります。2つの部分文字列は重複しないでください。 例として、文字列が与えられた場合 fAbbAcGfaBBagF 太字の部分は、最長のストリングアンチストリングペアです。 プログラムは、ペアを見つけたら、それぞれを1つの文字に折りたたむ必要があります。これは、各部分文字列の最初の文字を除くすべてを削除することでこれを行う必要があります。たとえば、上の文字列 fAbbAcGfaBBagF になるだろう fAcGfagF その後、プログラムは、最長文字列のアンチストリングペアが1文字以下になるまでプロセスを繰り返す必要があります。 たとえば、同じ文字列を使用すると、崩壊後の新しい最長のペアは fAcGfagF もう一度文字列を折り畳みます fAcGag これで、文字列をさらに折りたたむことができないため、出力する必要があります。 候補のペアが同点の場合(例AvaVA)、どちらかを削減することができます(AaAまたはAvV、ではなく、Aa)。 これはコードゴルフであるため、回答はバイト単位で記録され、バイト数は少ない方が良いでしょう。 テストケース fAbbAcGfaBBagF -> fAcGag AvaVA -> AaA / AvV QQQQQQQ -> QQQQQQQ fAbbAcQQQQaBBacqqqqA -> fAbcQBcq gaq -> gaq fAbbAcGfaBBagFaBBa -> fcGaBBag 動機 この問題はarbitrary意的に思えるかもしれませんが、基本的なポリゴンを処理するコードを作成しているときに実際に遭遇した問題です。このプロセスを使用して、基本ポリゴンをより小さなnポリゴンに減らすことができます。それを試した後、私はそれが素敵な小さなゴルフをするだろうと思った。

30
音符のリストを出力する
このタスクは簡単です。A♭からG♯までのすべての音符のリスト(英語の音名を使用)を出力するプログラムまたは関数を作成します。 単一の文字で構成される名前のないすべての音符(つまり、音楽キーボードの黒い音符)には、音符のシャープと1つのフラットの2回ずつ名前を印刷する必要があります。B♯(C)やF♭(E)のように1文字で説明できるシャープまたはフラットなノートは出力しないでください。 出力の例を次に示します。 Ab, A, A#, Bb, B, C, C#, Db, D, D#, Eb, E, F, F#, Gb, G, G# 仕様書 プログラムまたは関数は入力を取ってはなりません。 メモは、任意の順序で、および標準のI / Oルールで許可されているリスト出力で印刷できます。 シャープでフラットなUnicodeシンボル(♯/♭)はb 、# いつものように、標準の抜け穴は禁止されています。 これはcode-golfであるため、バイト単位の最小のプログラムが勝ちます。

24
Add-Multiply-Addシーケンス
(関連) 整数が与えられた場合n > 1、 1)数値の範囲を構成しn, n-1, n-2, ... 3, 2, 1、合計を計算します 2)その数値 の個々の桁を取り、製品を計算します3)その数値の個々の桁を取り、合計を計算し ます4)手順2と3を繰り返します1桁に達します。その数字が結果です。 シーケンスの最初の20の用語は次のとおりです。 3, 6, 0, 5, 2, 7, 9, 2, 7, 9, 1, 9, 0, 0, 9, 6, 7, 0, 0, 6 注:このシーケンスはOEISにはありません。 I / Oとルール 数値はすぐに非常に大きくなるため、ソリューションは最大10万個の入力数値をエラーなしで処理できる必要があります(コードがそれを超えて処理できる場合は問題ありません)。 入力と出力は、任意の便利な方法で指定できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 n output 1234 9 3005 …

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