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

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

9
連動ブラケット
()[]{}<>4つのそれぞれのブラケットタイプが一致するように配置された各文字の1つを含む8バイト文字列を取り込むプログラムまたは関数を記述します。たとえば]<([){}>、角括弧が一致しないため、入力は無効です(ただし、他のすべては一致します)。 から整数を出力0する6か、4つのブラケットタイプの6つの可能な組み合わせのどれだけがインターロックされるかを示します。ブラケットタイプペアは、1つのタイプのブラケットがもう1つのタイプのブラケットの間にちょうど1つある場合、インターロックされていると見なされます。そう([)]と[(])連動しているが()[]、[]()、([])、と[()]ではありません。 バイト単位の最短コードが優先されます。 入出力の例 ()[]{}<> : 0 ([{<>}]) : 0 <>{[]}() : 0 {<>([])} : 0 <(>)[{}] : 1 <[({)}]> : 1 [{<}]>() : 2 {<>([}]) : 2 <{(>})[] : 3 [(]<){>} : 3 <([>{)}] : 4 (<{[>})] : 4 (<[{)>}] : 5 <{[(>})] : 5 [{<(]}>) : 6 (<{[)>}] …

1
非環状炭素鎖の命名
(私は化学者ではありません!私はいくつかの点で間違っているかもしれません、私は高校で学んだことを書いています) 炭素原子には特別な属性があります:他の4つの原子(これは特別ではありません)に結合でき、非常にユニークな長い鎖であっても安定しています。これらはさまざまな方法で連鎖および結合できるため、それらに名前を付けるには何らかの命名規則が必要です。 これは、作成可能な最小の分子です。 CH4 メタンと呼ばれます。1つの炭素と4つの水素原子のみで構成されています。次は: CH3 - CH3 これはエタンと呼ばれます。2つの炭素と6つの水素原子で構成されています。 次の2つは: CH3 - CH2 - CH3 CH3 - CH2 - CH2 - CH3 それらはプロパンとブタンです。問題は2つの異なる方法で構築できるため、4つの炭素原子を持つ鎖から始まります。1つは上に示し、もう1つは次のとおりです。 CH3 - CH - CH3 | CH3 これは明らかに他のものと同じではありません。原子の数と結合は異なります。もちろん、結合を折り畳んで分子を回転させるだけでは、別のものになりません!したがって、この: CH3 - CH2 - CH2 - CH3 この: CH3 - CH2 | CH3 - CH2 同じです(グラフ理論に興味があるなら、2つの分子の間に同型があると言うかもしれません;それらは同じです)。水素原子はこの挑戦に不可欠ではないので、今後は書きません。 有機化学が嫌いで、名前を付ける炭素原子がたくさんあるので、これを行うプログラムを作成することにします。ハードドライブの空き容量があまりないため、プログラムはできるだけ小さくする必要があります。 チャレンジ 複数行のテキストを入力(カーボンチェーン)として取り込み、カーボンチェーンの名前を出力するプログラムを作成します。入力には、スペース、大文字の「c」文字、および「|」のみが含まれます。および「-」はバインディングを表します。入力チェーンにサイクルが含まれることはありません!例: …

30
九九で一意の数字を並べ替える
今日の非常に簡単な課題: 正の整数Nを取り、行と列の被乗数の両方が1からNまでの範囲の乗法テーブルに現れる一意の数字のソートされたリストを出力または返すプログラムまたは関数を記述します。 リストは、昇順(最小から最大)または降順(最大から最小)でソートでき、適切な形式で出力できます。 バイト単位の最短コードが勝ちです! 例 N = 4の場合、乗算表は次のようになります。 1 2 3 4 ----------- 1| 1 2 3 4 | 2| 2 4 6 8 | 3| 3 6 9 12 | 4| 4 8 12 16 テーブル内の一意の番号は1, 2, 3, 4, 6, 8, 9, 12, 16です。これらはすでにソートされているため、 1, 2, 3, 4, 6, …

7
すべてのコードとアダプターを一緒につなげることはできますか?
ある日、未使用のコンピューターコードとアダプター(USBからUSB mini、VGAからDVIなど)の大きな箱を掘っていると仮定します。絡み合ったコードがいたるところに散らかっているので、すべてのコードを1本の長いストランドにまとめて、それを巻き上げるだけで物事を単純化できるかどうか疑問に思います。 問題は、すべてのコードとアダプターをこのように1本の長いラインで接続することは可能ですか?明らかに、常に可能なわけではありません。たとえば、プラグがまったく異なる2本のコードしかない場合、それらを接続できませんでした。しかし、両方に接続できる3つ目のコードがあれば、すべてのコードをつなぎ合わせることができます。 全コードより線の端にあるプラグの種類は気にしません。ループを形成するために互いに接続する必要はありません。あなたは、すべてのコードのストランドを作ることが可能かどうか、可能であれば、それをどのように行うかを知りたいだけです。 チャレンジ すべての行が所有するコードの1つを表す複数行の文字列を取り込むプログラムまたは関数を作成します。コードは、1つ以上のダッシュ(-)で構成され、両端にプラグが付いています。プラグは常に8文字の1つです()[]{}<>。 これらはいくつかの有効なコードです: >-> (--[ }-{ <-----] (---) しかし、これらはそうではありません: --> (-- )-- [{ --- コードを接続する場合、まったく同じブラケットタイプのプラグのみを接続できます。 したがって、これらは有効なコード接続です。 ...---((---... ...---))---... ...---]]---... ...---{{---... ...---<<---... そして、これらは無効です。 ...---()---... ...---)(---... ...---{]---... ...---{[---... ...---><---... ...--->)---... 入力内のすべてのコードを並べ替えて1つの長いストランドにまとめて接続できる場合は、そのストランドを1行のstdoutに出力します(オプションの末尾の改行を使用)。複数のソリューションがある場合、それらのいずれかを選択して出力できます。単一のストランドを作成できない場合は、何も出力しません(または、オプションの末尾の改行を含む空の文字列を出力します)。 たとえば、入力が [--> {---] >----{ 出力は [-->>----{{---] すべてのコードが一緒に張られています。 ただし、入力が [--> {---] コードは接続できないため、出力はありません。 接続に必要なだけコードをひっくり返すことができることに注意してください。例えば[-->とは<--]、彼らが接続の同じ種類を作ることができるので、効果的に同じコードです。一部の出力は、入力コードの反転に依存する場合があります。 例えば (-[ }--] 出力できる (-[[--{ …
30 code-golf  string 

1
マジック:ザギャザリングコンバットゴルフ
マジック:ザギャザリングはトレーディングカードゲームで、特にプレイヤーはクリーチャーを表すカードをプレイします。クリーチャーは他のプレイヤーを攻撃したり、ブロックして他のプレイヤーの攻撃から防御したりできます。 このコードゴルフチャレンジでは、戦闘でブロックする方法を決定するマジックプレーヤーの代わりにプログラムを作成します。 各クリーチャーには、パワーとタフネスという2つの関連する属性があります。クリーチャーのパワーは、戦闘で与えることができるダメージの量であり、そのタフネスはそれを破壊するのに必要なダメージの量です。パワーは常に少なくとも0で、タフネスは常に少なくとも1です。 マジックでの戦闘中、自分の順番が変わるプレイヤーは、自分のクリーチャーの一部が対戦相手を攻撃していると宣言します。次に、防御プレイヤーとして知られる他のプレイヤーは、クリーチャーをブロッカーとして割り当てることができます。クリーチャーは戦闘ごとに1つのクリーチャーのみをブロックできますが、複数のクリーチャーはすべて同じクリーチャーをブロックできます。 ブロッカーが宣言された後、攻撃プレイヤーは、ブロックされた攻撃クリーチャーごとに、そのクリーチャーがそれをブロックしているクリーチャーに与えるダメージ(そのパワーに等しい)をどのように分配するかを決定します。 その後、ダメージが与えられます。各クリーチャーは、その力に等しいダメージを与えます。ブロックされた攻撃クリーチャーは、上記のようにダメージを与えます。ブロックされていない攻撃クリーチャーは、防御プレイヤーにダメージを与えます。ブロックしているクリーチャーは、ブロックしたクリーチャーにダメージを与えます。ブロックしなかった防御プレイヤーに属するクリーチャーはダメージを与えません。(ブロックするのにクリーチャーは必要ありません。) 最後に、そのタフネス以上のダメージを与えられたクリーチャーは破壊され、戦場から取り除かれます。クリーチャーのタフネス未満のダメージは効果がありません。 このプロセスの例を次に示します。 パワーPとタフネスTを持つクリーチャーは、 P/T Attacking: 2/2, 3/3 Defending player's creatures: 1/4, 1/1, 0/1 Defending player declares blockers: 1/4 and 1/1 block 2/2, 0/1 does not block. Attacking player distributes damage: 2/2 deals 1 damage to 1/4 and 1 damage to 1/1 Damage is dealt: …

17
SE投稿で上位5つのコメントスコアを表示する
Stack Exchangeスクリプトは、サイトのメインページに最初に表示される質問または回答に関する5つのコメントを、それらへの賛成票の数によって決定します。投票数が最も多い5つのコメントが表示されます。あなたの仕事は、この動作を再現することです。 STDIN、コマンドライン引数、または関数の引数を使用して入力を取得する完全なプログラムまたは関数を作成し、上位5つのコメントスコアを出力または返します。入力は、ある投稿のコメントに対する賛成票の数を表す整数の配列になります。たとえば、の入力 0, 2, 5, 4, 0, 1, 0 は、最初のコメントには投票がなく、2番目のコメントには2票、3番目には5票、4番目には4票、というようになります。 入力に含まれるコメントスコアが5つ以下の場合、出力には指定されたもののみが含まれます。2つ以上のコメントスコアが同じ場合、最初のスコアが表示されます。入力配列には、少なくとも1つのコメントスコアが含まれると想定できます。 出力内の番号は簡単に区別できるはずです(したがって、ケース1の02541は無効です)。それ以外の場合、出力形式に制限はありません。数字はスペースまたは改行で区切られているか、リスト形式などになっている場合があります。 テストケース: [0, 2, 5, 4, 0, 1, 0] -> [0, 2, 5, 4, 1] [2, 1, 1, 5, 3, 6] -> [2, 1, 5, 3, 6] [0, 4, 5] -> [0, 4, 5] [1, 1, 5, 1, …

1
回転する風車を描く
あなたが吹くそれらの楽しい風車を覚えており、それらはくるくると回転しますか?1つコーディングしましょう! 風車には、\ | / _中心と腕を描くキャラクターのセットがあります。1つの可能な風車は次のようになります。 | | |_ ___ ___|_| | | | しかし、回転しない風車とは何ですか?楽しくない!シンボルを再配置することでスピンさせることができます: / \ / \ / \/\ \/\ / \ / \ / 課題は、3つの整数を取り、以下に指定するように風車を出力するプログラムを作成することです。これらの1つ目はアームの数、2つ目は風車のアームの長さ、3つ目は時計回りに1/8回転する回数です。 次のことを想定できます。 アームの数は常に0、1、2、4、または8です。 すべてのアームは互いに等間隔に配置されます。 風車の初期位置の中心は次のようになります。 _ |_| 腕の数が1の場合、腕が指す方向を決定できます。 腕の数が2の場合、腕を垂直または水平に向けることができます。 STDINまたはコマンドライン引数を介して入力を受け取る完全なプログラム、または関数引数を介して入力を受け取る関数を作成できます。プログラムは、風車の回転を示す一連の出力を表示する必要があります。各出力は、少なくとも1つの空行で区切られています。風車の中心は、1スペース以上移動しないでください。必要なだけ先頭および末尾のスペースを出力できます。 ここではいくつかの例を示します。 0 2 1 _ |_| /\ \/ 1 3 2 | | |_ …

7
どのフレンドのキャラクターが本当に親友でしたか?
アメリカのシットコムフレンズの6人の主なキャストメンバーは全員、シリーズの実行中(少なくともシーズン2以降)に同じ給料が支払われることに同意しました。しかし、だからといって、全員が同じ時間の放送時間を持っているわけでも、画面上ですべて同じ時間対話したというわけでもありません。 この課題では、どのフレンドの友達が本当に最高かを判断するのに役立つプログラムを作成します。 セットアップ 友人のエピソードやシーンを見て、各カメラショット中に誰がどのくらいの時間画面にいるかを正確に書き留めてください。 各キャラクターの名前を短縮します: C以下のためであるチャンドラー Jジョーイ用です M以下のためであるモニカ P以下のためであるフィービー Rレイチェルのためです Sロスのためです 次に、カメラショットごとに(またはキャラクターがショットを入力/終了するたびに)、誰が画面にいたかをリストします。例えば: 504 CRS 200 J 345 MP 980 2000 CJMPRS これは言っている: 504msの間、チャンドラー、レイチェル、ロスがスクリーンに映りました。 その後、200msの間、ジョーイはそうでした。 それから345msの間、モニカとフィービーはそうでした。 その後、980msの間、6人の主人公のいずれも画面に表示されませんでした。 その後、2秒間、すべてがそうでした。 (これは実際のクリップからではありません、私はそれを作りました。) 以下は同等であることに注意してください。 504 CRS 1 J 199 J 345 MP 980 2000 CJMPRS どのキャラクターの組み合わせが最もスクリーンタイムが長かったかを分析するために、6キャラクターの64個の可能なサブセットすべてを見て、それらが持っていたスクリーンタイムを合計しました。カメラショット中にサブセット内の全員が画面に表示される場合、サブセット内の文字よりも多くの文字がある場合でも、そのカメラショットの時間がそのサブセットの合計画面時間に追加されます。 空のサブセットには例外があります-6つのメインキャラクターが含まれていないシーンのみがカウントされます。 したがって、上記の例の分析は次のようになります。 980 2504 C 2200 J 2345 M …

10
正弦波テキスト
目標:入力文字列を正弦波形状で出力するプログラムまたは関数を作成します。 ASCII正弦波 これが正弦波の1つの期間です。 ....... ... ... .. .. . . . . . . . . . . . . . . . .. .. ... ... ....... 各列に正確に1つのドットがあることに注意してください。 入力文字列の各文字は、上記の形状のドットを左から右に置き換えます。 入力のスペースは、ドットの代わりに通常の文字のように出力する必要があります。 開始文字は、上の図の左端のドットに対応しています。 これは1周期のみで、入力は上記のドット数よりも長くなる場合があります。 入力 入力は、ASCII 10進数32(スペース)とASCII 10進数126(ティルド〜)の間の文字のみを含むASCII文字列です。 入力は常に1行のみです(改行なし)。 入力は、STDIN、関数パラメーター、コマンドライン引数、または同様のものを介して取得できます。 出力 出力は、指定されたテストケースとまったく同じように印刷する必要があります。 行の末尾のスペースは、それらの末尾のスペースを含む行の長さが最長行(最後の文字がある行)の長さを超えない限り許可されます。 先頭/末尾の行は許可されません。 テストケース 入力: ................................................. 出力: ....... ... ... …

30
「tac」の実装:ファイルの行を逆順に印刷します
子猫の質問からU&Lでsed魔法についてのこの質問を見るまで、実装はtacどうですか? 目的 ファイル内の行を反転して印刷するプログラムを実装します。 入力 名前として、または標準入力を介して提供されるファイル 出力 行を反転し、標準出力にします。 得点 ソースコードのバイト。
30 code-golf  string 

15
マージンが狭すぎる
1637年ごろ、ピエール・ド・フェルマーは算数のコピーの余白に次のように書いた。 It is impossible to separate a cube into two cubes, or a fourth power into two fourth powers, or in general, any power higher than the second, into two like powers. I have discovered a truly marvelous proof of this, which this margin is too narrow to contain. 残念ながら、証拠を含めるにはマージンがまだ狭すぎます。今日は、任意の入力の証明を確認する簡単なプログラムを余白に書き込みます。 …
30 code-golf  number 

29
すべての行のクイン
あなたの目標は、各行の後に新しい行を付けて、無期限に印刷するプログラムを作成することです。したがって、プログラムが1行の場合、出力のすべての行で繰り返されます。 例 プログラム: A 出力: A A A ... ルール スニペットや関数ではなく、完全なプログラムでなければなりません。 プログラムは、スタックオーバーフローまたは再帰制限エラーなしで永久にループする必要があります。 出力はstdoutまたは最も近い代替です。 プログラム入力は受け入れられません。 プログラムのファイルを開く、外部リソースにアクセスするなど、標準的な抜け穴は許可されません。空のプログラムは標準の抜け穴として許可されていません。 プログラムのコードが末尾の改行で終わる場合、これはクイン間の必要な改行としてカウントされず、別の改行を印刷する必要があります。 codegolf-最短コードが勝ちます!
30 code-golf  quine 

30
2つの文字列の最長共通プレフィックス
入力として2つの文字列を受け取り、最長の共通プレフィックスを返すプログラムを作成します。これはcode-golfであるため、バイト数が最も少ない答えが優先されます。 Test Case 1: "global" , "glossary" "glo" Test Case 2: "department" , "depart" "depart" Test Case 3: "glove", "dove" ""
30 code-golf  string 

6
スラッシュを使用してヒルベルト曲線を描く
ヒルベルト曲線はとして表すことができる空間充填フラクタルであるLindenmayerシステムの連続した世代と、このようになります。 おかげhttp://www.texample.net/tikz/examples/hilbert-curve/画像のため。 ゴール stdinから正の整数nを取り、スラッシュ、バックスラッシュ、スペース、改行のみを使用してn次のヒルベルト曲線をstdoutに描画する、可能な最短のプログラム(バイト単位)を記述します。 たとえば、入力が1出力である場合、 \ \/ 入力が2出力の場合 / \/\ /\ \ / /\/ \ \ \/ 入力が3出力の場合 \ /\/ / /\ \/\ \ \ /\ / / / / / \/ \/\ \ \/\ /\ \ \/ / / / /\/ /\/ / \ \ \ \/\ \/ \/\ …

30
1が複数回実行される数値
仕事 バイナリ表現に1、少なくとも1つで区切られた2つ以上の実行が含まれるように、数値のセットを見つけます0。 たとえば、4ビット長の数値の場合: 0 0000 (no ones) 1 0001 (only one run) 2 0010 (only one run) 3 0011 (only one run) 4 0100 (only one run) 5 0101 Valid 6 0110 (only one run) 7 0111 (only one run) 8 1000 (only one run) 9 1001 Valid 10 1010 …
30 code-golf  binary 

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