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

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

25
爆発したサフィックス
ASCII文字列を指定して、その展開されたサフィックスを出力します。たとえば、文字列がの場合、abcde5つのサフィックスがあり、最長から最短の順に並べられています。 abcde bcde cde de e 各サフィックスはその後さ爆発という接尾辞でその一インデックス付きの場所として何回もコピーされる各文字を意味し、。たとえば、の接尾辞を分解するとabcde、 abcde 12345 abbcccddddeeeee bcde 1234 bccdddeeee cde 123 cddeee de 12 dee e 1 e 全体として、展開されたサフィックスabcdeは abbcccddddeeeee bccdddeeee cddeee dee e ルール これはコードゴルフなので、最短のコードが優先されます。 入力は、印刷可能なASCII文字で構成されます。(これは改行を除外しますが、スペースを含みます。) 出力では、各文字列が個別の行に表示されます。 各行には末尾のスペースを使用できますが、末尾に余分な改行がある場合があります。 テストケース '' 'a' a 'bc' bcc c 'xyz' xyyzzz yzz z 'code-golf' coodddeeee-----ggggggooooooollllllllfffffffff oddeee----gggggoooooolllllllffffffff dee---ggggooooollllllfffffff e--gggoooolllllffffff -ggooollllfffff …
20 code-golf  string 

6
ASCIIポーカーチップスタックアレンジメントを作成する
ポーカーには、多くの場合トーナメントで強制される、チップの配置方法に関するエチケットがあります-チップは、主にいくつかの大きな金種のチップを隠さないために、他者の後ろにいることによって対戦相手から「隠されない」ことがあります。 チャレンジ ASCIIでポーカーをプレイするので、合計値を考慮してASCIIチップスタック配置を描画する関数またはプログラムを作成する必要があります。 n。 入力 -正の整数n(最大2**32-1処理必要があります) 出力 -以下に定義されているスタック配置のASCII表現。 これには、各行の右側に空白が含まれている可能性があるため、最長(下)行の印刷可能文字が使用する長さよりも1文字長い行はありません。 これには、単一の末尾の改行が含まれる場合があります。そして あなたが好む場合はチップを表す文字は小文字であってもよいです。 スタックの配置は次のとおりです。 宗派を考慮して、可能な限り少ないチップを含む(以下を参照)。 「スタック」(列)に等しい価値のあるチップがあります。 短いスタックが高いスタックの右側になるように注文してください。そして より大きな金種チップを持つスタックが、より小さな金種の同じサイズのスタックの右側になるように注文します(右側の敵に見えることを表します) チップ自体は、色を識別する個々の文字として表されます。 White : 1 = W Red : 5 = R Green : 25 = G Black : 100 = B Yellow : 500 = Y Pink : 1K = P Orange : 5K …

3
n Sigイチジクへのラウンド
チャレンジ 数を考えるxと数n、ラウンド数xにn大きな数字と出力結果を。 有効数字 数値の有効数字は、その測定分解能に寄与する意味を持つ数字です。これには、先行ゼロを除くすべての数値が含まれます。 小数点以下の先行ゼロはまだ重要ではないことに注意してください。 数字を丸めるときに、次の数字が5以上の場合は、ゼロから丸める必要があります。 小数点の後のすべての末尾のゼロは、重要としてカウントされます。 入力 最初の数値はx、丸められる数値です。2番目の数値はn、丸める必要がある有効数字の数ですx。 x-1,000,000,000〜1,000(000,000を含む)の間の数値(コードは整数と浮動小数点の両方を処理する必要があります)。n1から50までの正の整数になります。nの桁数より大きくなることはありませんx。 入力はなることはありません0か、のいずれかの形式0たとえば、0.000または000。 例 Inputs: 2.6754, 2 Output: 2.7 2.7000小数点以下のゼロは有効数字としてカウントされるため、の出力は無効になります。 Inputs: 0.00034551, 4 Output: 0.0003455 Inputs: 50237.1238, 3 Output: 50200 これは小数点を持たないことに注意してください。 Inputs: 2374905, 1 Output: 2000000 Inputs: 543.0489, 4 Output: 543.0 Inputs: 15, 1 Output: 20 Inputs: 520.3, 3 Output: 520 必要に応じて、520.代わりに出力できますが、出力はできません520.0。 …
20 code-golf  math 

16
シーケンス内の奇妙なものを見つける
チャレンジ: がより小さい正の整数F(N) = 2^N + 1である関数を考えます。この関数で定義されるシーケンスは次のとおりです。N31 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097, 8193, 16385, 32769, 65537, 131073, 262145, 524289, 1048577, 2097153, 4194305, 8388609, 16777217, 33554433, 67108865, 134217729, 268435457, 536870913, 1073741825 入力は次のように生成されます。 上記のシーケンスから5つの連続した整数を取得します。 それらの1つを別の正の整数に置き換えます(上記のシーケンスの一部である場合とそうでない場合があります)。 オプションで、結果の5つの数値を並べ替えます。 このような5つの整数のリストが与えられた場合、スワップインされたため、元の5つの連続した整数の一部ではないものを見つけます。 例: 元のサブリスト:5, 9, 17, 33, 65。 1つを置き換えます5, 7, 17, …

4
茎葉プロットの検証
茎と葉のプロットは、全てが、最後の数字によって決定されたグループ内の数値の束を表示します。たとえば、次のデータセットがあるとします。 0, 2, 12, 13, 13, 15, 16, 20, 29, 43, 49, 101 この茎と葉のプロットを作成できます。 0|02 1|23356 2|09 3| 4|39 5| 6| 7| 8| 9| 10|1 最初の行のステムは0であるため、その「葉」-後の数字|-は、0から10までの値を表します。各茎の葉が並べ替えられます。葉のない茎(3など)がプロットに表示されます。101の値は100を含む100から110を除くので、そのステムは10(100を10で割った値)です。 あなたの課題は、テキストが有効なステムとリーフプロットであるかどうかを確認することです。有効なプロットは次のルールを満たします。 データの範囲内のすべてのステム(つまり、10の幅のグループ)ごとに正確に1つの行があります(範囲の中央にあるリーフを含まないステムを含む) 範囲外のステムはありません すべての葉は右に昇順でソートされます すべてのステムは昇順でソートされます 数字のみ(区切り文字以外|) 小数部分のある数値を扱う必要はありません。ステムの余分な先行ゼロを承認または拒否できますが、空白のステムは許可されません。少なくとも1つの値があります。各行の葉の後の余分なスペースのみを想定できます。先頭または末尾の改行を想定できます。すべての文字は印刷可能なASCIIです。 関数またはプログラムは、有効なプロットの場合は真の値を、無効なプロットの場合は偽の値を(画面または標準出力に)返すか出力する必要があります。標準の入力、ファイルからの入力を、1つの大きな文字列として、文字列の配列として取得できます-最も便利なものは何でも。 有効なプロットであるいくつかのテストケースを次に示します(空白行で区切られています)。 2|00003457 3|35 4|799 5|3 99|3 100|0556 101| 102| 103|8 0|0 無効なプロットであるテストケースと、右側のコメントを次に示します。 |0 Blank stem 5|347 …

18
複数キーの並べ替え
インデックスのリストと0個以上の整数のリストが与えられた場合、最初の入力からのキー優先度で昇順でソートされた整数のリストを出力します。 例 キー入力をとし[1, 0, 2]、リスト入力をとします[[5, 3, 4], [6, 2, 1], [5, 2, 1]]。これらのリストは、2番目の要素、1番目の要素、3番目の要素の順に昇順で並べ替える必要があります。 最初に、indexの値でソートします1。[[6, 2, 1], [5, 2, 1], [5, 3, 4]] 次に、indexの値を使用して、最初の並べ替えの関係を解除します0。[[5, 2, 1], [6, 2, 1], [5, 3, 4]] 最後に、indexのvluesとの残りの関係を解除します2(これは実際には何も変更しません。関係が残っていないためです)。 詳細 ソートは安定しています。2つの要素が指定されたソートキーに関して同等に比較される場合、それらは出力内で同じ相対的な順序のままである必要があります。たとえば、指定されたソートキーの下でAとBが等しく、入力がであった[..., A, ..., B, ...]場合、出力のA前Bに配置する必要があります。 ソートキーは、入力リストのいずれかに存在しない要素を参照することはありません。 ソートキーは繰り返されません。したがって、[1, 2, 1]ソートキーの有効なリストではありません。 ソートキーによって参照されない要素は、ソート順を考慮しません。出力の順序は、初期相対順序とソートキーによって参照される要素の値のみが決定します。 ソートキーをゼロインデックスにするか1インデックスにするかを選択できます。 ソートキーには負の値はありません。1インデックスを使用することを選択した場合、ソートキーにもゼロはありません。 整数値は、言語のネイティブ表現可能な範囲を超えません。選択した言語がネイティブに任意の精度の整数(Pythonなど)に対応している場合、メモリの制約を条件として、任意の整数値を入力に含めることができます。 リファレンス実装(Python 2) #!/usr/bin/env python …

5
好奇心が猫を殺した?
好奇心が猫を殺したと言う人もいます。他の人は、それは箱と毒だったと言います。RSPCAは、ErwinSchrödingerがペットを飼う権利を失う必要があると言っています。 彼の家の外の動物権活動家と。猫の殺人者の科学者は、シュレーディンガーは最終的に彼の最大の発明を打ち出しています。半減期を持つことができるunobtaniumとhandwaviumの特別な放射性混合物で、1グラムの製品であらゆる生物を殺すことができます。残念ながら、彼が最後の猫であるボブでそれをテストしようとしたとき、彼は猫が9つの命を持っていることを忘れていました。いくらかの水はあるが食物がなければ、貧しいボブは最初に製品が彼を殺さなければ正確に1週間(7日間)生きます。 タスク:ミリグラム単位の質量とミリ秒単位の半減期の入力がある場合-両方の整数が2 ^ 31を超える可能性がある場合、ミステリースーパープロダクトが猫を殺すかどうか、または1週間かどうかを出力するプログラムを作成します最初に制限が切れます。答えで指定されているtrue / yes / 1 / anythingは、彼が飢fromで死なない場合を想定しています。 製品が彼を殺すには、合計9グラムが腐敗しなければなりません。したがって、18グラムのサンプルのうち、1つの半減期が経過する必要があります。サンプルに含まれるグラムが9グラム以下の場合、これは決して達成されないため、9グラムが減衰する前に1週間が経過するとすぐに推測できます。 あなたは仮定することができます: ボブは、9グラムが減衰したマイクロ秒で死亡します。 変化による質量の変化は問題ではありません。 すべての曜日と時間は、一般的に受け入れられている地球時間に従います。 ボブが封印された箱は壊れたり開けたりすることができないため、他の原因による死の可能性はありません。 酸素も問題ではありません。 両方がまったく同時に発生する場合は、どちらの出力も受け入れられます。 すべての入力は2 ^ 63-1未満でなければなりません テストケース: 例: 18000 604800001 9グラムが減衰するには、正確に1半減期が経過する必要があります(18000/2 = 9000ミリグラムまたは9グラム)。1半減期は604800001ミリ秒、つまり168時間1ミリ秒、または正確に1週間1ミリ秒です。ボブはちょうど1週間で空腹で亡くなっているため、9グラムの製品制限に達する直前に空腹で亡くなったため、出力は誤っています。 8000 40000 false 70000 800 true 18000 604800000 either 18000 604800001 false 18000 604799999 true 1 1 false 100000 1 true …
20 code-golf  math 

12
タイムゾーンを変更する
チャレンジ 入力として時間とタイムゾーンを指定し、そのタイムゾーンの時間を出力します。 時間 時刻は次のような24時間形式で表示されます。 hh:mm hhは2桁の時間、mmは2桁の分です。次のように、時間と分には常にゼロが埋め込まれることに注意してください。 06:09 指定された時間はすべてUTC + 00:00です。 出力の時間をゼロで埋める必要はありませんが、時間は24時間形式である必要があります タイムゾーン タイムゾーンは次の形式で提供されます。 UTC±hh:mm ここで、±は+または-であり、hhは2桁の時間で、mmは2桁の分です(ここでも、ゼロが埋め込まれます)。 そのタイムゾーンの時間を見つけるには、入力された時間からUTC±の後の時間を加算(シンボルが+の場合)または減算(シンボルが-の場合)します。 たとえば、入力が24:56との場合、UTC-02:5024:56から2時間50分を減算します。 24:56 02:50 - ----- 22:06 出力はになります22:06。 例 シカゴ Input: 08:50 and UTC-06:00 Output: 02:50 カトマンズ Input: 09:42 and UTC+05:45 Output: 15:27 サモア Input: 06:42 and UTC+13:00 Output: 19:42 ハワイ Input: 02:40 and UTC-10:00 …
20 code-golf  date 

14
三角形にもっとノードが必要
ノードが重心座標を使用してラベル付けされている標準の正三角形を考えてみましょう。 この3つのノードの三角形を6つのノードの三角形に変えるには、3つの頂点の新しい線(元の3つのノードの三角形の側面にあるものよりも多く)を追加し、内部エッジ(内部ノードではなく)を削除し、座標を正規化する: (再び、一つ以上のオリジナル6ノード三角形の側に存在していた)、4つの頂点の行を追加し、10ノードの三角形に6ノード三角形から行くためのプロセスを繰り返すこと、任意の内部エッジ(ただし、削除しない内部ノードを)座標を再正規化します: このプロセスは無期限に繰り返すことができます。このチャレンジの目標には、Nこのプロセスが実行された回数を表す整数が与えられ、重心座標で関連する三角形のすべてのノードが出力されます。 入力 プログラム/関数は、Nこのプロセスが適用された回数を表す単一の負でない整数を入力として受け取る必要があります。N=0では、3つのノードを持つ元の三角形を出力する必要があることに注意してください。 入力は、任意のソース(関数パラメーター、stdioなど)から取得できます。 出力 プログラム/関数は、すべてのノードを正規化された重心座標で出力する必要があります。ノードの順序は関係ありません。数値は、分数(分数の削減は不要)または浮動小数点数として指定できます。「スケーリングされた」ベクトルを出力してノードを指定することもできます。たとえば、次の3つの出力はすべて同等であり、許可されます。 0.5,0.5,0 1/2,2/4,0 [1,1,0]/2 浮動小数点出力を使用する場合、出力は1%以内の精度である必要があります。出力は、必要なシンク(stdio、戻り値、戻りパラメーターなど)になります。重心座標はノードごとに2つの数値によってのみ一意に決定されますが、ノードごとに3つの数値すべてを出力する必要があることに注意してください。 例 サンプルケースの形式は次のとおりです。 N x0,y0,z0 x1,y1,z1 x2,y2,z2 ... ここで、最初の行は入力Nであり、後続のすべての行x,y,zは、出力に1回だけ存在するノードを形成します。すべての数値は、近似浮動小数点数として与えられます。 0 1,0,0 0,1,0 0,0,1 1 1,0,0 0,1,0 0,0,1 0.5,0,0.5 0.5,0.5,0 0,0.5,0.5 2 1,0,0 0,1,0 0,0,1 0.667,0,0.333 0.667,0.333,0 0.333,0,0.667 0.333,0.333,0.333 0.333,0.667,0 0,0.333,0.667 0,0.667,0.333 3 1,0,0 0.75,0,0.25 0.75,0.25,0 0.5,0,0.5 0.5,0.25,0.25 0.5,0.5,0 …

6
ブリティッシュインテリジェンスを倒せますか?(ノノグラムソルバー)
ブリティッシュインテリジェンスを打ち負かすという危険な探求に乗り出す時が来ました。この課題の目的は、ノノグラムを解決する最短のコードを書くことです。 ノノグラムとは何ですか? ルールは簡単です。正方形のグリッドがあり、黒で塗りつぶすか、空白のままにする必要があります。グリッドの各行の横には、その行の黒い四角の実行の長さがリストされます。各列の上には、その列の黒い四角の連続の長さがリストされています。あなたの目的は、すべての黒い正方形を見つけることです。このパズルタイプでは、数字は、特定の行または列にある塗りつぶされた正方形の切れ目のないラインの数を測定する離散トモグラフィーの形式です。たとえば、「4 8 3」の手がかりは、4、8、および3つの塗りつぶされた正方形のセットがこの順序であり、連続するグループ間に少なくとも1つの空白の正方形があることを意味します。[ 1 ] [ 2 ] したがって、上記のノノグラムの解決策は次のとおりです。 実装の詳細 任意の方法でNonogramを表現す​​ることを選択し、言語に適した方法で入力として使用することができます。出力についても同様です。この課題の目的は、文字通り仕事を成し遂げることです。プログラムが提供する出力で非グラムを解くことができれば、それは有効です。1つの注意点は、オンラインソルバーを使用できないことです:) この問題は完全に効率的な解決策がないという点で非常にアルゴリズム的に挑戦的(np-complete)であり、そのため、大きな問題を解決できないことに対するペナルティはありませんが、そうであれば答えは大きく報われます大きなケースを処理できる(ボーナスを参照)。ベンチマークとして、私のソリューションは5〜10秒以内に最大約25x25で動作します。さまざまな言語間で柔軟性を持たせるには、25x25のノノグラムで5分未満のソリューションで十分です。 常に正方形のNxNノノグラムでパズルを想定できます。 このオンラインのノノグラムパズルメーカーを使用して、ソリューションをテストできます。 得点 もちろん、好きな言語を自由に使用できます。これはコードゴルフなので、エントリは次の順序で並べ替えられます。accuracy -> length of code -> speed.ただし、コードゴルフ言語、ゴルフの試みを示すすべての言語での回答に落胆しないでください。興味深い方法で支持されます! ボーナス ここでは、ブリティッシュインテリジェンスがリリースした暗号化されたクリスマスカードから実際に非グラムについて学びました。最初の部分は、基本的に大規模な25x25ノノグラムでした。あなたのソリューションがこれを解決できる場合、あなたは称賛を得るでしょう:) データ入力の面であなたの人生を楽にするために、私はあなたの無料使用のためにこの特定のパズルのデータをどのように表現したかを提供しました。最初の25行は行の手がかりで、その後に '-'の区切り線、25行の列の手がかり、 '#'の区切り線、正方形の手がかりが入ったグリッドの表現が続きます。 7 3 1 1 7 1 1 2 2 1 1 1 3 1 3 1 1 3 1 1 3 …

9
爆発的なASCIIアートチャレンジ
戦略ゲーム「Hexplode」では、プレイヤーは交互に六角形のボードにトークンを置きます。トークンの数が隣接するタイルの数と等しくなると、そのタイルはhexplodesし、その上のすべてのトークンを周囲の隣人に移動します。ここでオンラインでゲームをプレイできます。 私はこのゲームが好きですが、特定のタイルにいくつのトークンが入っているかを正確に知ることが難しい場合があります。私は常に隣人の数を数えています。ASCIIアートがあれば、各タイルにいくつのトークンが配置されているかを思い出すのに役立ちます。 入力として正の整数を取り、サイズNの六角形のこのASCII表現を生成するプログラムまたは関数を作成する必要があります。各タイルは、タイルが持っている隣人の数になります。1は近傍がゼロの奇妙なコーナーケースであるため、1より大きい入力のみを処理する必要があります。 この番号は、STDIN、関数引数、コマンドライン引数など、ファイルからの適切な形式で取得できます。出力は、STDOUTへの印刷、ファイルへの書き込み、文字列のリスト、改行で区切られた文字列など 以下は、最初の5つの入力のサンプル出力です。 2) 3 3 3 6 3 3 3 3) 3 4 3 4 6 6 4 3 6 6 6 3 4 6 6 4 3 4 3 4) 3 4 4 3 4 6 6 6 4 4 6 6 6 6 4 3 …

7
ルックアンドセイシーケンス:ローマ数字版
チャレンジの説明 Look-and-sayシーケンスに関連するいくつかの課題がありました。クイックリマインダー: シーケンスは、1で始まります このシーケンスの後続の用語は、前の用語の繰り返し数字の各グループを列挙することにより生成されます。 したがって、最初のいくつかの用語は次のとおりです。 1 "one" 11 "one one" (we look at the previous term) 21 "two ones" 1211 "one two, one one" 111221 "one one, one two, two ones" 312211 "three ones, two twos, one one" 今度は同じことをしましょうが、代わりにローマ数字を使用します。最初からI同じルールに従います(代わりに数字カウントルールを文字に適用するためIVX、one one, one five, one ten代わりに、one four, one tenまたは他の方法で読み取ります)。 I "one" II …

13
それは語彙ですか?
入力がプログラミング言語を使用する語彙であるかどうかを確認する最も短い方法は何ですか? wordinianは、長さ1から元の単語の長さまでの単語を含む単語です。例えば、 ビン 「I」は単語 「in」は単語 「bin」は単語 または、 ステージ 「a」は単語 「ta」は単語(はい) 「age」は単語 「stag」は単語 「stage」は単語 入力 コードは、妥当な形式の単語と辞書を入力として使用する必要があります。 出力 出力はtrueまたはfalseを示す値である必要があり、単語がwordinianであるかどうかがわかります。 wordiniansの詳細については、ここをクリックしてください。 これは、入力およびサブワードとして使用する単語のリストです。また、@ xnorに応答して、サブワードのチェーンではなく、各長さのサブワードを含める必要があります。1つの単語のみが入力として使用されることに注意してください。

5
バイナリワードに一致する最短の単純な正規表現
仕事 単純な正規表現を、次のみで構成される空でない正規表現として定義します 文字0と1、 括弧をグループ化(して)、 1つ以上の反復量指定子+。 0sと1sの空でない文字列が与えられると、プログラムは完全な入力文字列に一致する最短の単純な正規表現を見つけるはずです。(つまり、単純な正規表現に一致する場合、とで予約されているふり^ をし $ます。)最短の正規表現が複数ある場合は、それらの一部またはすべてを出力します。) code-golfなので、最短の送信(バイト単位)が勝ちます。 テストケース 1 -> 1 00 -> 00 or 0+ 010 -> 010 1110 -> 1+0 01010 -> 01010 0101010 -> 0(10)+ or (01)+0 011111 -> 01+ 10110110 -> (1+0)+ 01100110 -> (0110)+ or (01+0)+ 010010010 -> (010)+ 111100111 -> 1+001+ or …

30
ASCII長方形を描く
2つの整数を配列の入力として指定し、最初の整数を幅として、2番目の整数を高さとして使用して、長方形を描きます。 または、言語でサポートされている場合、2つの整数を別々の入力として指定できます。 幅と高さが3未満になることはないと仮定し、常に指定されます。 出力例: [3、3] |-| | | |-| [5、8] |---| | | | | | | | | | | | | |---| [10、3] |--------| | | |--------| これはコードゴルフであるため、バイト数が最も少ない答えが優先されます。

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