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

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

5
ナショナルスケジューリングコンフリクトチャンピオンシップ
(1542:Scheduling Conflict が現在のxkcdである間にこれを投稿するつもりでしたが、スケジューリングの競合がありました。) 入力 入力は3n、nイベントを表す要素のリストになります。3の各グループの最初の要素はイベントの名前になります。2番目と3番目、それぞれ開始時刻と終了時刻。例えば: foo 12 34 bar 56 78 foo「時刻12」で始まるイベント(時刻は単純に整数で表されます。時刻は真夜中過ぎの分と考えることができます)と34で終了しbar、56で始まり78で終了する2番目のイベントを表します。 イベントの名前は常に英数字のみで構成され、時刻は常に0以上1440未満の整数になります。終了時刻は常に開始時刻より少なくとも1大きくなります。それらは、いかなる方法でもソートされることを保証されません。 必要に応じて、スペースで区切られた単一の文字列としてこれを使用できます。それ以外の場合は、配列、リスト、ベクトル、または言語の同等物として取得する必要があります。 出力 出力は、スペースで区切られたイベント名のリストである必要があります。出力するイベント名のルールは次のとおりです。 出力するイベントが互いに競合することはありません。たとえば、input a 0 10 b 5 15では、時間が競合するため(つまり、部分的に重複するため)、両方aを出力することはできませんb。イベントが別のイベントの開始と同時に終了する場合、両方を含めることができます。 NSCC「National Scheduling Conflict Competition」と呼ばれるイベントを出力することはできません。このイベントでは、常に入力に1つが含まれます。また、競合する(少なくとも部分的に重複する)イベントを少なくとも1つ出力する必要がありますNSCC(常に少なくとも1つが存在します)。 上記の2つのルールに従って、できるだけ多くのイベントを出力する必要があります。(これは、できるだけ忙しいように見えるようにするためです。そのため、NSCCの欠落はより信頼できるように見えます。) これは、単一のスペースで区切られた文字列または配列、リスト、ベクトルなどとして出力される場合もあります。 複数の出力が存在する可能性があります。 テストケース リストされている出力は例にすぎないことに注意してください。上記の3つのルールに従っている限り、コードは異なるものを出力する可能性があります(特に、これは例と同じ量のイベントが存在する必要があることを意味します)。 In:UnderwaterBasketWeavingConvention 50 800 NSCC 500 550 Out:UnderwaterBasketWeavingConvention In:SconeEating 0 50 RegexSubbing 45 110 CodeGolfing 95 105 NSCC 100 …
25 code-golf 

8
あなたの全単射基底はすべて私たちのものです
バックグラウンド 全単射ベースBの記数、bは正の整数であるが、の使用なる全単射位置表記でのbの関連値を有するシンボル1に、B。 非全単射とは異なり、値が0のシンボルはありません。このようにして、各非負整数nは全単射基底bで一意の表現を持ちます。 一般的な全単射の数え方には、単項全単射の基数2(bzip2のランレングスエンコーディングで使用)および全単射の基数26(スプレッドシートの列の番号付けに使用)が含まれます。 定義 この課題では、シンボルの集合Mを次のように定義します。 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<=> 機能IからMの自然数ようにI( '1')= 1、...、I( '>')= 64。 基地所与Bとの間の1及び64(両方を含む)、我々は、各非負整数ように定義N列に対応するK ... 0のシンボルからなるM、その結果、N = BのK I(K)+を…+ b 0 i(a 0)。 この対応は明確で全単射です。空の合計は0として定義されるため、整数0は空の文字列としてエンコードできます。 仕事 入力として3つの文字列を受け入れます。 入力ベースBとの間の1と64全単射塩基としてエンコード、64列。 全単射の基底b文字列としてエンコードされた非負の整数n。 出力ベースBとの間の1と64全単射塩基としてエンコード、64列。 これらの3つの入力が与えられたら、nを全単射の基本B文字列としてエンコードします。 テストケース すべてのテストケースは、入力をb、n、Bの順に指定します。 Input: "4" "" "8" Output: "" Input: "A" "16" "2" Output: "1112" Input: "2" "122" "A" Output: "A" Input: …

4
何時ですか?
手首に3つの時計を装着することで、文字通り時間を節約するのが好きです。問題は、それぞれ異なる時間を与えることです。1つの時計は実際の時刻からx分遅れています。1つの時計は実際の時間よりx分進んでいます。最後の時計は実際の時間を示しています。 問題は、どの時計の時刻が正しいかわからないことです... 各時計に表示される時間から、実際の時間を決定します。時間を判断できない場合は、「Look at the sun」を印刷してください。 入力: 単一のスペース文字で区切られた3つの読み取り値:H1:M1 H2:M2 H3:M3 各読み取り値で、H1、H2、H3は表示時間(0 <H1、H2、H3 <13)を表し、M1、M2、M3は表示分(0 <= M1 、M2、M3 <60)。分数が10未満の場合、入力の先頭に0が追加されます。同様に、時間数が10未満の場合、入力の先頭に0が追加されます。 出力: The correct time is HH:MMここで、HH:MMは正しい時刻です。正しい時間を特定できない場合は、が表示されますLook at the sun。 入力1: 05:00 12:00 10:00 出力1: The correct time is 05:00 入力2: 11:59 12:30 01:01 出力2: The correct time is 12:30 入力3: 12:00 04:00 08:00 …
25 code-golf  date 

16
2つの惑星の名前を与えられ、距離を与える
次の表(source)を使用して、2つの惑星の名前を取得し、それらの間の距離を返すコードをいくつか作成します。 +-------------------+---------------+ | Planets | Distance (km) | +-------------------+---------------+ | Mercury -> Venus | 50290000 | | Venus -> Earth | 41400000 | | Earth -> Mars | 78340000 | | Mars -> Jupiter | 550390000 | | Jupiter -> Saturn | 646270000 | | Saturn -> Uranus | 1448950000 …

12
あなたの仲間はどこに座りますか?
あなたと何人かの仲間はボウリングをしています。合計N個のボウラーがいます。ただし、座れるのはN -1の椅子のみです。解決策は簡単です。その後、順番が終わると、次に行く人の椅子に座ります。 例を見てみましょう。あなたの名前はAで、4人の友人の名前はB、C、D、Eであるとします。すべてのプレーヤーはアルファベット順に移動するため、最初に移動します。5人のプレイヤーがいるので、4席のみです。友人は次の順序で4つの席に座っています。 CEBD あなたが行って、いや、ストライキをする!それはだBあなたが彼の椅子に座っているので、次のターン。これは次のようになります。 CEAD Bが行く。ガターボール!その後、彼はCのスポットに座り、Cは次のターンに進みます。 ビーズ その後、Cはに座っているDさんの椅子。 BEAC そしてDはに座っているEさんの椅子 BDAC そして最後に、Eはあなたの椅子に座っています。 BDEC 皆さんの席が(擬似)シャッフルされていることに気付くでしょう。Xが回った後、誰がどこに座っているのかを知る必要がありますか? 入力 プログラムは、ユーザーからの2つの入力、文字列と数値を受け取る必要があります。プロンプトは必要ありません。文字列は1〜51文字のアルファベット文字(BZとaz)で、繰り返しはありません。これは、友達が座ることを選んだ順序を表します。大文字のAはありません。大文字であるため、常に最初に移動します。数は、あなたとあなたの友人がプレイするラウンド(ゲームではない)の合計数になります。この数は正で、適切なサイズ(1000未満)になります。 出力 あなたのプログラムは、Xターン後に友人が座っている順番と、誰の順番かを印刷する必要があります。したがって、たとえば、Xがターンした後に注文がBEDGCAHFであり、それがZのターンであった場合、プログラムはこれを正確に印刷する必要があります。 BEDGCAHF It is Z's turn. 次に、入力と出力のサンプルをいくつか示します。 input: E, 4 E It is A's turn. input: E, 5 A It is E's turn. input: Bb, 2 AB It is b's turn. input: …
25 code-golf  string 

30
2つの数値を比較する
チャレンジ 二つの整数を考えるAとB、入力として、あなたは、次の場合に出力するプログラムを作成する必要がありA>B、A==BまたはA<B。 整数は、少なくとも256個の値を含む、言語でサポートされる任意の妥当な範囲になります。 プログラムは、STDINまたは関数の引数を介して入力を受け取る完全なプログラムまたは関数のいずれかです。 出力 もし A>B出力する A is greater than B もし A==B出力する A is equal to B もし A<B出力する A is less than B 置換する場所AとBその整数値。 勝ち バイト単位の最短プログラムが優先されます。 リーダーボード var QUESTION_ID=55693,OVERRIDE_USER=8478;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o …
25 code-golf  number 

21
ASCIIチェッカーボードを描く
概要 最近のASCIIアートチャレンジの人気に触発され、このチャレンジの目的は、チェスをプレイできるようなASCIIチェッカーボードを描くことです。 n引数としてstdin、またはユーザー入力として正の整数を取るプログラムを記述し、1文字の太さの境界線とともにnxのn正方形のチェッカーボードを出力します。 各正方形は2x2文字でなければなりません。正方形は、通常の交互の白黒(市松模様の左上隅のように白が最初)のパターンに従う必要があります。白い四角はスペース()文字で作成し、黒い四角はポンド(#)文字で作成する必要があります。 境界線は、境界線または正方形の垂直点に-プラス(+)を付けたダッシュ()で作成する必要があります。 入力 チェッカーボードに描画する正方形の数(正方形の寸法)を表す正の整数。各正方形は2x2文字です。 結果の例 n=2 +--+--+ | |##| | |##| +--+--+ |##| | |##| | +--+--+ n=3 +--+--+--+ | |##| | | |##| | +--+--+--+ |##| |##| |##| |##| +--+--+--+ | |##| | | |##| | +--+--+--+ n=4 +--+--+--+--+ | |##| |##| | |##| |##| +--+--+--+--+ …

2
正規表現パターンの半順序付け
この課題のために、部分文字列だけでなく文字列全体がパターンと一致する場合、正規表現パターンは文字列と一致すると言います。 与えられた2つの正規表現のパターン A と Bは、我々はと言う Aが され、より専門よりも B で一致したすべての文字列ならば Aは またで一致している B の周りに他の方法ではありません。私たちは、と言う Aが あると同等に B の両方のパターンが正確に文字列の同じセットと一致している場合。パターンが他のパターンよりも特殊化されておらず、同等でもない場合、A とB は比較できないと 言い ます。 たとえば、パターンHello, .*!は、より特殊です.*, .*!。パターン(Hello|Goodbye), World!とHello, World!|Goodbye, World!は同等です。パターンHello, .*!と.*, World!は比較できません。 「より専門化された」という関係は、正規表現パターンのセットの厳密な半順序を定義します。特に、すべてのパターン A および Bについて、正確に次のいずれかが当てはまります。 A はBよりも特殊化されています (A < B)。 B はAよりも特化されています (A > B)。 A と B は同等です(A = B)。 A …

7
基本的なPythのような構文チェッカー
Pythは、Pythonに基づいたゴルフ言語です。プレフィックス表記を使用し、各コマンドは異なるアリティ(受け入れる引数の数)を持ちます。 あなたの仕事は、(存在しない)Pythライクな言語Pithの構文チェッカーを書くことです。 髄の構文 Pithには8つの単一文字コマンドしかありません。 01234()" 01234それぞれが対応する数のアリティを持っているため、その後に多くの引数が必要です。例えば、 400010 正しい髄プログラムがあるためである4四つの引数が続いている0 0 0と10されたのは、最後の1単一の引数が続きます0。これを視覚化するために、次のツリーを見ることができます。 R | 4 | ------------- | | | | 0 0 0 1 | 0 どこRがルートノードです。これについて考える別の方法は、各数値が、対応するノードが上のツリーに持つ子の数を指すということです。 次に、複数のベースコマンドを使用した別の有効なPithプログラムを示します。 210010 対応する R | ------------- | | 2 1 | | --------- 0 | | 1 0 | 0 一方、 3120102100 イニシャルには2つの引数しかないため、正しいPithプログラムではありません。3次のツリーを見るとわかります。 R …

11
Goでのゴルフのヒント
Goでゴルフをするための一般的なヒントは何ですか?私はCode Golfingを初めて使い、少なくともGoに特有のゴルフ問題全般に適用できるアイデアを探しています。 回答ごとに1つのヒントを保管してください。
25 code-golf  tips 

11
非負のものから整数のペアを生成します
N入力として負でない整数を取り、2つの整数(負、ゼロまたは正)Xおよびを出力または返すプログラムまたは関数を作成する必要がありYます。 整数は無限に多く存在するため、数学的な意味で使用されます。 実装された関数は全単射でなければなりません。これは、毎回N異なるX Yペアを出力しX Yなければならないことを意味し、すべてのペアはいくつかの入力に対してN出力される必要がありますN。 ... ┌─────┬─────┬────┬────┬────┐ │-2 -2│-2 -1│-2 0│-2 1│-2 2│ ├─────┼─────┼────┼────┼────┤ │-1 -2│-1 -1│-1 0│-1 1│-1 2│ ├─────┼─────┼────┼────┼────┤ ... │0 -2 │0 -1 │0 0 │0 1 │0 2 │ ... ├─────┼─────┼────┼────┼────┤ │1 -2 │1 -1 │1 0 │1 1 │1 2 │ ├─────┼─────┼────┼────┼────┤ │2 -2 │2 …
25 code-golf  math  number 

19
Dotty文字列の評価
文字.とのみを含む奇数長の文字列を取り込むプログラムを作成し:ます。最初は空のstackを使用して、次のようにこの文字列から数値を生成します。 文字列内のすべての文字cについて(左から右へ)... 場合cがあり.、スタックが2つの未満の要素を有し、スタックに1を押してください。 場合cがあり.、スタックは、2つの以上の要素を有し、スタックから2つのトップの値をポップし、スタックにその和を押します。 場合cがあり:、スタックが2つの未満の要素を有し、スタックに2を押してください。 場合cがあり:、スタックは、2つの以上の要素を有し、スタックから2つのトップの値をポップし、スタックにそれらの製品を押し出します。 結果の数値は、スタックの一番上の値です。プログラムは、この番号を標準出力に出力する必要があります(オプションの末尾の改行を使用)。 (少しの分析では、文字列の長さが偶数でない限り、残っている数字は1つだけであることが示されています。そのため、これらは無視されます。実際、スタックには2つ以上の要素がありません。) たとえば、の番号::...:.:.は9です。 2 1 2 2 /______ stack just after the character below is handled 2 2 4 4 5 5 7 7 9 \ : : . . . : . : . <-- string, one character at a time 健全性チェックとして、長さ1、3、および5のすべての文字列の数値を次に示します。 . …

1
2つのウィキペディアの記事間のルートを見つける
前書き 最近、私はたくさんの友人と空を飛び回っていて、退屈して何もすることがなかったので、「ゲーム」を「発明」しました私はそれを見たことがなかったが、それを発明しなかった)。「ゲーム」という言葉を引用符で囲んだのは、それが実際のコンピューターゲームではなく、ウィキペディアでプレイされているためです。 遊ぶのは本当に簡単です。誰かがウィキペディアの記事を目標として選択します。この例では、Code Golfを想定します。すべてのプレイヤーは、ランダムな記事から開始し(サイドバーの[ ランダムな記事]を押すか、この URLに移動します)、現在の記事のリンクされた記事のみを使用して、できるだけ早く「目標」に到達する必要があります。ルールが含まれます: 検索機能は許可されていません(明らかに) 記事のメインテキスト(具体的には内のすべてのテキスト<div id="bodyContent">)内のリンクのみをクリックできます。 ランダムページまたは発生した他のページに有効なリンク(デッドリンク、ループなど)がないか、リンクがまったくない場合は、再度ロールバックできます。 チャレンジ ここがあなたの出番です:残念ながら、私はこのゲームにはかなり苦手ですが、私は汚い詐欺師でもあります。だから、私にこのボットを実装してほしい。私はプログラマでもあるので、当然、私のハードディスクにはコードやライブラリなどがいっぱいで、空きメモリは数バイトしかありません。したがって、この課題はコードゴルフであり、バイト数が最小の答えが勝ちます。 実装の詳細: もちろん、トピック間の接続を認識し、最適なルートを自動的に検出するインテリジェントなボットを実装する必要はありません。ブルートフォーシングは、この課題の目的には十分すぎるほどです。 実際のゲームでは、時間が重要です。あなたのプログラムは記事を見つけるのに1時間以上かかるべきではありません(これは「最終的に」目標を見つけるランダムな検索者のような抜け穴を避けるためです) ゴールへのパスが見つからない場合(デッドリンクやループなど)、以下のリストから何をするかを選択できます。 終了(スコアは同じままです) 別のランダムな記事を取得して再試行し、ループでは何もしません(スコア-= 10) デッドリンクまたはループに関する別のランダムな記事を取得する(ループを自動的に検出する)(スコア-= 50) (「スコア」とは、ここでのバイト数を意味します) ルートを「トレース」すると、さらに20ボーナスバイトが差し引かれるため、訪問する個々のページのタイトルを印刷します。 標準のネットワークライブラリを使用できます(「ウィキペディアの記事をクロールする独自のネットワークライブラリを作成しました」などの抜け穴を避けるため) プログラムがネットワークに関連する唯一のことは、HTTPリクエストを送信してウィキペディアページをダウンロードすることです プログラムがページを見つけると、プログラムは終了しますが、何らかの形で終了したことを知らせます(文字「f」またはページのタイトルを印刷するだけで十分です) 標準的な抜け穴を避ける ゴルフをお楽しみください! (これが私の最初の質問ですので、それらを利用する前にコメントの明らかな抜け穴と警告を指摘してください-ありがとう:D)
25 code-golf 

30
Piのモンテカルロ推定量
みんなハッピーパイデー!理由もなく、可能な限り短いPiのモンテカルロ推定量を構築しようとしています。ツイートに収まるものを構築できますか? 明確にするために、私が念頭に置いているのは、単位正方形からランダムな点を描き、単位円内に入る比率を計算する典型的なアプローチです。サンプルの数は、ハードコーディングすることも、しないこともできます。それらをハードコーディングする場合、少なくとも1000サンプルを使用する必要があります。結果は、浮動小数点、固定小数点、または有理数として返されるか出力される場合があります。 トリガー関数やPi定数は、モンテカルロアプローチではありません。 これはコードゴルフであるため、最短の提出(バイト単位)が優先されます。

30
印刷番号の三角形
numberを指定するNと、NxN個の直角三角形が出力iされiます。各行には、までの数字が入力されます。 例 n = 0 (出力なし) n = 4 1 1 2 1 2 3 1 2 3 4 n = 10 1 1 2 1 2 3 . . . 1 2 3 4 5 6 7 8 9 10 (アライメントは不要です) n = N 1 1 2 1 2 …
25 code-golf  number 

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