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

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

4
これらのワイヤを解くのを手伝ってください!
私のワイヤーはすべて絡まっています! ワイヤーがすべて絡まると迷惑になりませんか?まあ、それはちょうど私に起こったので、私はそれらを解くのを手伝いたいです!便宜上、これらすべてをデバイスから切断しましたが、すべてコンセントに接続されたままです。あなたの課題は、それらを解く方法を理解することです! 入力 入力は、スペース、パイプ、およびXで構成されます(両方の場合)。入力は次のようになります。 | | | | X | | | | x | X | | | | | 大文字のXは、左のワイヤが右のワイヤと交差することを意味し、小文字のxはその反対を意味します。最初と最後の行は常にです| | | |...。入力は、コンマ区切りの文字列、文字列の配列などとして使用できます。意味があり、余分な情報が含まれていない限り、形式は厳密ではありません。 出力 この挑戦のために、私はどれくらい時間がかかるかを知る必要があるだけでなく、私は何をすべきかを正確に知る必要があります。したがって、大文字と小文字を区別しない文字RまたはLを持つ整数ペアのリストを出力します。これは、2本のワイヤを解く方法と方向を表します(RはLの場合は右、左の場合はその逆)。どの方法でそれらを解除するかを教えてください。私は自分でそれを理解できません。すべての整数ペア+文字を正しい順序で出力し、余分なナンセンステキスト(括弧、コンマなどは問題ありません)を出力しない限り、出力もかなり柔軟です。ワイヤには、0個または1個のインデックスを付けることができますが、インデックスは左から開始する必要があります。上部からではなく、下部からもつれを解く必要があることに注意してください。出力スタイルは一貫している必要があり、明確でない場合は出力方法を指定してください。キャラクターの大文字小文字は一致していませんが、 サンプル出力 上記の入力例の場合、出力は次のようになります。 2 3 R 3 4 L 1 2 R ここでの出力形式は、スペースで区切られた値の改行で区切られたリストです。これは1インデックスです。 さらなる仕様 Xとxをいずれかの順序で互いに垂直に積み重ねることは有効です。私は怠け者であるため、不必要にワイヤを切り替えたくないので、これらの場合には何も出力しないでください。それが見つかったら、ワイヤーをそっと引っ張ってまっすぐにします。 また、複数のXとxを垂直に積み重ねることも有効です。また、どちらのワイヤも他の交差に関与していない限り、余分な動きは必要ありません(怠け者だからです)。したがって、文字がX X x X x x他の交差なしで列に表示される場合、出力は空白のままです。 これが明確でない場合、RはXを除去し、Lはxを除去します。 同じ行に2つのワイヤ交差がある可能性があります。その場合、これら2つのスワップの順序は重要ではありません。次のようなものは得られ| X …
12 code-golf  string 

5
アスキーアートを折りたたむ
チャレンジ 文字列として、または標準入力を介して印刷可能なASCII文字の長方形のグリッドが与えられた場合、非スペース文字を下の山に折りたたむ関数またはプログラムを記述します。 ルール: 出力は、入力と同じ次元と文字を持ちます。 非空白文字は、(row a,column b)空白文字持つことができない' 'で(a-1, b)、(a-1,b-1)あるいは(a-1,b+1)行が一番下から上に番号が付けられ、。これにより、すべての垂直杭が横に倒れるという結果になります。 スペース以外の文字は、ほとんどの(initial height - final height)場所で左または右に移動できます(図1を参照)。 画面から文字が落ちることなく、画像が折りたたむのに十分なスペースがあると想定できます。 図1:それぞれ@#$として示されているキャラクターの最終的な位置x,y,z。 .............. ...@.......... ..xxx......... .xxxxx...#.... xxxxxxx.yyy.$. 文字が崩壊する順序は自由に選択できます。末尾のスペースは大丈夫ではありませんが、末尾の改行は大丈夫です。 これはcode-golfなので、バイト単位の最短回答が勝ちです! 例 (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ..."Have you mooed today?"... 1つの可能な出力: --(_ /----|/|(o_) /|/~\---~\\/o) ..."Have*you~mooed~today?"...

1
これらのセルをグループ化します!
この課題は、ゲームLayerzに基づいています。 標準入力または関数の引数として、各セルに空白(ペナルティなしで空白の代わりに0を使用することを選択できます)、1、2、3、または4のいずれかを含むセルの2D長方形配列; 各非空白セルがちょうど1つの領域に含まれるように、それを有効な領域(以下に定義)に分割する方法を見つけます。次に、見つかったソリューションを適切な形式で出力します。解決策がない場合は、出力を生成せずに停止するか、単一のfalsey値を出力して停止します。 次のいずれかが有効なリージョンを構成します。 1を含む単一のセル 2を含むセルと、その非空白の直交ネイバーの1つを含む 3つおよび正確に2つの非空白の直交近傍を含むセル 4のセルと、厳密に3つの非空白の直交ネイバーを含むセル これはcode-golfであるため、バイト単位での最短の有効な回答が優先されます。 いくつかのテストケース: 1.かなり些細なもの: これが解決策であり、各領域は異なる色になっています。 2.より興味深いもの これには複数のソリューションがありますが、そのうちの1つを次に示します。 3.解決策を持たない、空白を含む小さなもの(2つのうちの1つを使用して3つを「キャプチャ」するか、3つを使用して2つのうち2つを取得するかによって、隣接しない(したがってグループ化できない)2つのペアまたは単独の2つのペア): このグリッドには解決策がないため、このグリッドが与えられたときに出力を生成せずにプログラムを停止する必要があります。 4.これは(上の2つのセルを1つ左にシフトした)解決策があります: 解決: (右下2は3を「キャプチャ」するために使用されます) 5.いくつかの4つのテストケースが必要だったため: 1つのソリューション:

1
渇きで死ぬのを見たい
あなたは2つの町の間で砂漠を横断する旅行者です。停止せずに通り抜けるのに十分な水を運ぶことはできません。これは、古典的なパズルのバリエーションです。 ルール 砂漠は次のようになります。ほとんどが空のWxHグリッドです。マークされたスペースSは開始点、E終了点であり、数字Nでマークされた正方形にはN単位の水が入ります。.ゼロホールド水でマークされた正方形。 ..................................... ........S............................ ..................................... .........7........................... ..................................... .......................3............. .....5............................... ................................2.... ..................................... ..................................... ..................................... ...............................E..... ..................................... ....................7................ ..................................... ..................................... 5単位の水でSから開始します。 最大5ユニットの水を運ぶことができます。 各ターンあなた 1つの正方形を上、下、左、または右に移動し、 あなたが運んでいる水を1単位消費する、 いくつかの単位の水を拾ったり、落としたりします。 ターンは次のように表記されます:(direction)(+|-)(units of water)、+あなたは水を拾うこと、-あなたがそれを落とすことを示します。 例は次のとおりです。 D+0 Move Down R+0 Move Right D+2 Move Down, pick up two units of water. U-1 Move Up, drop one unit …
12 code-golf  game  search 

1
証明2 + 2 = 2 * 2(および同様)
出力のような、そのような声明の完全な正式なパッと消える1+2=3、2+2=2*(1+1)など はじめに Peano Arithmeticを知っている場合は、おそらくこのセクションをスキップできます。 自然数の定義方法は次のとおりです。 (Axiom 1) 0 is a number (Axiom 2) If `x` is a number, the `S(x)`, the successor of `x`, is a number. したがって、たとえばS(S(S(0)))数字です。 コードで同等の表現を使用できます。たとえば、これらはすべて有効です。 0 "" 0 () ! 1 "#" S(0) (()) !' 2 "##" S(S(0)) ((())) !'' 3 "###" S(S(S(0))) (((()))) !''' ... …

5
Pythonスクリプトにコメントを追加して、バイリンガルPython / C ++の「プログラム」にします
次のPython 3スクリプトを考えます: def greet(): print("Hello, world!") greet() このテキストファイルにいくつかの行を追加して、Pythonプログラムとして実行できるだけでなく、同じ出力を生成するC ++プログラムとしてコンパイルおよび実行できるようにします Hello、world!(最後の改行を含む): $ python3 bilingual.py.cpp Hello, world! $ g++ bilingual.py.cpp && ./a.out Hello, world! ソリューションは、Pythonスクリプトを含むプログラム全体の非空白文字の数によってスコア付けされます。 sed 's/\s//g' bilingual.py.cpp|wc -c

17
/ *行番号コメントを生成* /
あなたの仕事は、入力として文字列を受け取り、次のルールを満たすすべての行の先頭にテキストを追加するプログラム(または関数)を書くことです。 追加するテキストには行番号が含まれている必要があります。0または1ベースのインデックスを使用できます。 テキストはあなたの言語のコメントでなければなりません。コメントは、プログラムの状態を変更しない、構文的に有効なコードとして定義されます。コメントを削除しても、プログラムは変更されません。 コメントの最後には改行のみを含めることができます。 空白とコメントのみを含む行に行番号を付ける必要はありません。 仕様書 入力はあなたの言語の有効なプログラムであると仮定するかもしれません。 Pythonのようなインデントに敏感な言語では、すべてのインデントの後に行番号コメントを配置できます。インデント文字としてタブまたはスペースを選択できますが、投稿で指定する必要があります。 コード内のすべてのステートメントがせいぜい1行全体を占めると仮定することができます。つまり、複数行の文字列やバックスラッシュの連続はありません。 テストケース Python: #0 a = int(input()) #1 while a: #2 print(a) C:(正直、これがコンパイルされたことに驚いています) /*0 */#include <stdio.h> /*1 */int main() /*2 */{ /*3 */ char c; /*4 */ c = getchar(); /*5 */ do /*6 */ { /*7 */ putchar(c); /*8 */ } …

9
多角形の数字!
前書き 数学では、多角形の数は、通常の多角形の形状に配置された点または小石として表される数です。ドットはアルファ(単位)と見なされます。これらは、2次元の数字の1つのタイプです。 たとえば、番号10は三角形として配置できます。 * ** *** **** ただし、10個を正方形として配置することはできません。一方、番号9は次のようになります。 *** *** *** 36などのいくつかの数値は、正方形と三角形の両方として配置できます。 ****** * ****** ** ****** *** ****** **** ****** ***** ****** ****** 慣例により、1は任意の数の辺の最初の多角形番号です。ポリゴンを次のサイズに拡大するルールは、2つの隣接するアームを1ポイント拡張し、それらのポイント間に必要な余分な辺を追加することです。次の図では、追加の各レイヤーが赤で示されています。 三角数字: 平方数: 五角形や六角形など、より多くの辺を持つ多角形もこの規則に従って構築できますが、ドットは上記のような完全に規則的な格子を形成しなくなります。 五角形の番号: 六角形の番号: ソース: ウィキペディア あなたのタスク 正の整数N(1 <= N <= 1000)を指定すると、すべてのタイプの多角形数Nを出力します多角形、三角形から20角形(20角。 たとえば、10という数値は三角形と10進数であるため、出力は次のようになります(独自の出力形式を選択できますが、次のようになります)。 3 10 テストケース 1 -> 3 4 5 6 7 8 …

9
ヒルベルト曲線を描く
ヒルベルト曲線は空間充填曲線の一種であり、基本的に線を平面にマッピングします。線の各点は平面の1つの点にのみ対応し、平面の各点は線の1つの点に対応します。ヒルベルト曲線の反復0〜4が示されています。 0から4までの反復 このタスクの目的:上記で定義したように、ヒルベルト曲線の4番目の反復を描くコードを作成します。コードは完成している必要があります。つまり、ヒルベルト曲線を描く関数を作成する場合、コードはその関数を呼び出す必要があります。出力は、画面に直接表示するか、出力を画像ファイルに書き込むことができます。曲線は回転または反転できますが、線は直角に交差する必要があり、出力を引き伸ばすことはできません。ASCIIアートは高く評価されていますが、受け入れられません。バイト単位の最短コードが勝ちです!

11
角張っていないひも!
文字列が与えられたら、まず次のようにそれを二乗します。 まず、文字列を書きます。 abcde 次に、文字列を左に1つ回転して書き込みます。 abcde bcdea len(string)行を書くまでこれを続けてください。 abcde bcdea cdeab deabc eabcd 次に、次のような文字列から読み取ります。 ----+ +--+| |+>|| |+-+| +---+ 与えるもの: abcdeabcdcbaedcbcdeabaede この文字列を印刷します。 テストケース abcdef -> abcdefabcdedcbafedcbcdefabcbafedefaf cena! -> cena!cenanec!anena!cec!a! ppcg -> ppcgppcppgcpcgpg abc -> abcabacbc ab -> abab a -> a -> テストケースが間違っている場合はコメントしてください。 これはcode-golfであるため、バイト数が最小のコードが優先されます。
12 code-golf  string 

2
冒険者の冒険
チャレンジ あなたの仕事は、Adve the Adventurerが不気味な(ハロウィーンの)迷路を移動するのをアニメートすることです。Adveは•; しかし、彼は性格が流動的であるため、別の性格で表現されることを気にしません。 Adveをアニメーション化するには、各フレームを印刷します。フレームとは、現在の位置を含む地図です。Adveは1ターンごとにスペースを1つ進め、バックトラックすることはありません。彼は最初の行から始まり、最後の行で終わります。 入力 区切り文字または文字列配列を持つ文字列のような任意の合理的な形式。入力は、可能なパスを1つだけ含む3 * 3より大きいマップであると想定できます。文字だけの存在になります#と。 出力 フレーム。 迷路の例(OK ...ラビリンス) これは、Adveを含まないマップです。最初と最後のフレームはこの空のマップです(このマップは9x15です): ### ##### ## ##### ## ###### ## # ####### # # ### # # # # # # # ### # ####### # #### #### #### #### ### ##### ### ##### ### ##### ### これはcode-golfなので、バイト単位の最短コードが勝ちです! …
12 code-golf  string 

1
ランダム化されたパンプキンパッチ
先日、誕生日パーティーのためにパンプキンパッチを歩いていたところ、かぼちゃのつるが渦巻き、ループ、枝分かれで気の利いたパターンを作っていることに気付きました。ここでは、ASCIIアートを使用してこれをシミュレートします。 (()) \ p--q p-----q / \ / \ (()) b--d (()) つる構築ルール \ / - p q b dキャラクターのみで構成されたメインのつるは1つだけです。 つるは画面上を左から右にのみ移動します。言い換えれば、あなたが左端のつるキャラクターから始まるアリだったとしましょう。メインのつるで次の隣接するキャラクターに進むにつれて、1列右に移動する必要があります-左に移動することはありません。 つるが方向を変えると、p q b dキャラクターの1人がループをシミュレートする必要があります。p、東に北東旅行ブドウの木に合流q南東に東ため、b南東から東へ、そしてd東から北東に。文字の「ループ」は水平のつるに接続し、文字の「幹」は対角線に接続することに注意してください。 つるの始まりは、pまたはb(あなたの選択、ランダムである必要はありません)のいずれかでなければならず、水平に始まります。つるの終わりは、qまたはd(あなたの選択、ランダムである必要はありません)のいずれかでなければならず、水平に終わる必要があります。 ループは他のループのすぐ隣に配置できることに注意してください(たとえば、pdつるの有効な部分文字列です)が、そのため、後でカボチャを配置するのが難しくなります。- / \ループの直後のいずれか(例で行ったように)が必要な場合がありますが、必須ではありません。 かぼちゃのルール カボチャは(())(この正確な文字列)のみで構成されています。 主なブドウから、カボチャは枝分かれによって取り付けられています。これらの分岐は、p q b dループにのみ接続でき、正確に1つ\または/長さがあり、カボチャに接続して、分岐の「端」が中央になるようにします。 彼らはメインのブドウの上または下に接続できます。 分岐は「左」に接続できます。 分岐ごとに接続できるカボチャは1つだけで、ループごとに接続できる分岐は1つだけです。 ランダムネス 水平方向に移動する場合、ぶどうの木は水平方向に50%の確率で、北東に25%の確率で、南東に25%の確率でチャンスがあります。 斜めに移動する場合、つるは90%の確率で水平になり、10%の確率で斜めに進む可能性があります。 より多くのターンが許可されますが、入力されたカボチャの数をサポートするのに十分なターンが必要です。 つるが構築されると、カボチャがまだ占有されていないコーナーにカボチャをランダムに配置できます。 カボチャは、つるや他のカボチャと重ねることはできません。 チャレンジ 入力番号を指定して、上記の規則に従ってランダム化されたカボチャパッチを出力します。同じ入力でコードを複数回実行すると、異なる結果が得られます。特定の入力番号のすべての可能なカボチャパッチには、発生する可能性がゼロではない(必ずしも等しくない)必要があります。 入力 nパッチ内のカボチャの数を表す任意の便利な形式の単一の整数。コードを簡潔にするために、入力がであると想定できます0 < n …

4
優先権
あなたの仕事は、交差点の交通を規制することです。北、東、南、西から4本の道路があります。 入力は、各道路の今後の交通量を表す文字列です。たとえばNNNWS、北に3台、西に1台、南に1台の合計5台の車があることを示します。文字の順序はここでNNNWSは重要ではなく、と同等WNNSNです。 正しいルールの優先順位を使用して、車が進むべき順序を出力する必要があります:南から来る車は東から来る車を最初に行かなければなりません、東は北に、北は西に、西はに譲る南。 たとえば、入力NNNWSで、南の車が最初に移動し、次に西の車、次に3つの北の車が移動します。したがって、出力はになりますSWNNN。 いくつかの不確定なケースがあります。たとえば、NSまたはNNWSE:文字列を出力する必要がありますstuck。 テストケース N => N NW => WN NWS => SWN SNW => SWN SSSSS => SSSSS ENNNNES => NNNNEES NS => stuck NNWSE => stuck
12 code-golf 

30
リストの「ラップされていないサイズ」を見つける
次の規則により、uネストされたリストl(リストのみを含む)の「ラップされていないサイズ」関数を定義しましょう。 lが空の場合、u(l)1です。 lが空でない場合、u(l)は、のすべての要素のラップされていないサイズの合計にl1を加えたものに等しくなります。 あなたの仕事は、リストを入力として受け取り、リストのラップされていないサイズを出力する(または返す)プログラム(または関数)を書くことです。 テストケース: [] -> 1 [[[]],[]] -> 4 [[[]],[[[[]],[]]],[[[]],[[[[]],[[],[[]]]]]]] -> 19 [[[[]]]] -> 4 これはcode-golfなので、最短のプログラム(バイト単位)が勝ちます。

6
Haxeでのゴルフのヒント
ゴルフでの一般的なヒントは何ですか Haxeですか?私はコードゴルフの問題に適用でき、少なくともHaxeに特有のアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。 回答ごとに1つのヒントを投稿してください。 Haxeはここでオンラインで実行できます!
12 code-golf  tips 

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