プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

13
ポイントは何ですか?
デカルト平面上の点のXおよびY座標を表す2つの整数を取り込むプログラムまたは関数を記述します。 入力があれば、Xの値は、例えばY.前に来るように、任意の合理的なフォーマットで来るかもしれない、1 -2、(1,-2)、[1, -2]、または1\n-2すべての罰金であろうためのX = 1、Y = -2。 平面内のポイントの位置を説明する単一の文字列(オプションの末尾の改行が続く)を印刷または返します。 1ポイントが象限 Iにある場合 2 ポイントが象限IIにある場合 3 ポイントが象限IIIにある場合 4 ポイントが象限IVにある場合 Xポイントがx軸上にある場合(小文字xは使用できません) Yポイントがy軸上にある場合(小文字yは使用できません) O ポイントが原点(ゼロではなく大文字の「oh」)にある場合 バイト単位の最短コードが優先されます。Tiebreakerは、上位の回答に進みます。 テストケース (1,-2) -> 4 (30,56) -> 1 (-2,1) -> 2 (-89,-729) -> 3 (-89,0) -> X (0,400) -> Y (0,0) -> O (0,1) -> Y (0,-1) -> Y …

2
ピーク体験:すべてのピークをすばやく訪問
私は、たとえば、高度が数字で表されるx マップのポイント(0,0)に立っています。HW 1132 2221 1230 # H = 3, W = 4 すべてのピークからの景色を体験したいと思います3。この場合は、標高の高いエリアです。しかし、丘を登るのは簡単なことではなく、私も時間を使い果たしています。 チャレンジ 課題は、すべてのピークを訪れて戻ってくるための最速のパスを見つけることです。 最短のプログラムが勝ちます。 入力 H、W-マップの高さと幅(整数)(オプション、リスト/タプルまたは2つの個別の整数入力) 任意の便利な形式(2Dリスト、改行で区切られた文字列など)HのW数字のセット(0- 9)として与えられるマップ 出力 すべてのピークを訪れて出発点に戻るまでの最短時間(整数) 条件 特定のエリアの高度は、0〜の数字で表され9ます。 「ピーク」は、最高高度のエリアによって定義されます。 パスは、左上(0,0)領域で開始および終了する必要があります。 現在のエリアに隣接するエリアにのみ移動でき、斜めに移動することはできません。 高度に変化がない場合、あるエリアから別のエリアに移動するのに3分かかります。 登るには11分かかります。つまり、あるエリアから別のエリアに移動し1ます。これは正確に単位が高くなります。 降りるのに2分かかります。つまり、あるエリアから別のエリアに移動し1ます。これは正確に単位が低くなります。 現在地よりも1 1ユニット以上高いまたは低いエリアに移動することはできません。(高度のあるエリアから1隣接する高度のあるエリアに移動することはできません。たとえば、3) すべてのピークへのパスが保証されています ピークの最大数はです15。 サンプル 入力 4 5 32445 33434 21153 12343 出力 96 説明 左上から始め3ます。次の2つの訪問しなければならない5に位置しているのを(0,4)と(3,3)し、戻ってくる3の(0,0)最短時間で。 3 2 4->4->5 V …

12
文字列から母音をクランチ
タスクの説明 場合によっては、書いているものを小さなスペースに収める必要があります。母音とwrt lk thsを落とすのは魅力的かもしれません-それに失敗すると、誰が本当にスペースを必要としますか?Thssprfctlrdbl!† 小文字の母音を削除しaeiou、次にスペースを入力し、次に入力文字列から任意の文字を削除する関数またはプログラムを作成します。さらに、キャラクターを削除するたびに、そのキャラクターは削除の対象となる右端のキャラクターでなければなりません。文字列が特定の入力長より長くなくなるまで、このプロセスを繰り返す必要があります。 †「これは完全に読み取り可能です!」しかし、この脚注を読んでいるのなら、おそらくそうではないでしょう、本当に... :) 例 ここでは、連続してより小さい入力サイズにこのプロセスが適用されていることがわかります。 23: Hello, Code Golf World! 22: Hello, Code Golf Wrld! 21: Hello, Code Glf Wrld! 20: Hello, Cod Glf Wrld! 19: Hello, Cd Glf Wrld! 18: Hell, Cd Glf Wrld! 17: Hll, Cd Glf Wrld! 16: Hll, Cd GlfWrld! 15: Hll, …
22 code-golf  string 

13
数字を削除して、より大きな数を保持する
前書き この課題は、除去最大数見つけることにあるY元番号から数字をn個有するX桁。 を仮定するとy=2 n=5263 x=4、y = 2桁を削除する可能性のある数字は次のとおりです。 [52, 56, 53, 26, 23, 63] したがって、最大数は63、この例の出力である必要があります。 別のロジックは次のとおりです。各yについて、右から次の桁が大きい桁を左から右に検索して削除し、一致しない場合は最後のy桁を削除します。 y=3 n=76751432 x=8説明に使用: y=3 76751432 -^------ remove 6 because right next 7 is greater y=2 7751432 ---^--- remove 1 because right next 4 is greater y=1 775432 -----^ the search failed, then remove last y …

21
直交方向
タスク:文字の1つだけで構成される入力が与えられた場合、<>^v印刷可能なASCII文字(スペースからチルダまで)で構成される2番目の入力を、矢印の方向に向けて出力します。 プログラムへの2番目の入力がであると仮定しましょうABC。これがすべきことです: 入力>:プリントABC。 入力<:プリントCBA。 入力^:print C\nB\nA、または入力を-90°回転します。 入力v:印刷A\nB\nC、または入力を90°回転します。 テストケース input => \n output --- ">", "thanks!" => thanks! --- "<", "Hello, World!" => !dlroW ,olleH --- "^", "This is text." => . t x e t s i s i h T --- "v", "Tokyo" => T o k y o …
22 code-golf  string 

15
コードゴルフゴルフスコア
金曜日だから...ゴルフに行こう!ゴルフのゲームのホールでのプレーヤーの得点を決定するコードを記述します。コードは、関数またはプログラム全体のいずれかです。ジャンルが示唆するように、最短のコードが勝ちます。 入力(パラメーターまたはstdin、選択): ホールのパーを表す整数で、3〜6の間にあることが保証されています ゴルファーのスコアを表す整数で、1から64の間であることが保証されています 出力(stdoutまたはreturnに出力、末尾の改行は許可されますが必須ではありません、選択): スコアが1の場合、「Hole in one」を出力します スコア== par-4およびpar> 5の場合、「Condor」を出力します スコア==パー-3およびパー> 4の場合、「アルバトロス」を出力します スコア== par-2およびpar> 3の場合、「Eagle」を出力します スコア==パー-1の場合、「Birdie」を出力します スコア==パーの場合、「パー」を出力します スコア==パー+ 1の場合、「Bogey」を出力します スコア==パー+ 2の場合、「Double Bogey」を出力します スコア==パー+ 3の場合、「トリプルボギー」を出力します スコア>パー+ 3の場合、「Haha you loser」を出力します 編集最短の回答を得て、デニスにおめでとうございます!

30
整数リストを並べ替える
チャレンジ 本当に簡単です。数字のリストを並べ替えます。 詳細 組み込みのソート関数/ライブラリ/など(list.sort()Pythonなど)を使用せずに、数値のリストを昇順でソートする必要があります。 入出力は、人間が判読できる限り、選択した任意の方法で実行できます。 標準の抜け穴はいつものように禁止されています。 バイト単位の最短コードが優先されます。 使用したソート方法(バブル、挿入、選択など)を説明/リストする必要があります 入力には重複は含まれません。 サンプル入出力 入力: 99,-2,53,4,67,55,23,43,88,-22,36,45 出力: -22,-2,4,23,36,43,45,53,55,67,88,99 注:数字のリストの並べ替えのほぼ正反対

9
Parsonsコードの視覚化解除
前書き パーソンズコードが記述するだけの簡単な方法であるピッチ変動をメモは、以前のものよりも高いか低いか、楽曲に。 曲を覚えるのが面倒くさいとしても、音が上がったり下がったりするかどうかはほとんど覚えているので、Parsonsコードは検索エンジンを使用して音楽を識別するのに役立ちます。 説明 各バリエーションは、次のいずれかの単一の文字で表されます。 Rメモが前のメモと同じ場合(「R epeat」の略) Uメモが前のメモよりも高い場合(「U p」の略) Dメモが前のメモよりも低い場合(「D所有」の略) 最初のメモはとして書かれてい*ます。 例 次に、Parsonsコードの例を示します("Ode to Joy"の始まり): *RUURDDDDRUURDR 次のように、実際に視覚化できます。 *-* / \ * * / \ *-* * *-* \ / \ * * *-* \ / *-* これを輪郭と呼びます。 このような国を描くためのルールは、上記の例で説明されていると考えられます。 チャレンジ 今、本当の挑戦が来ます。 入力として輪郭を与え、対応するパーソンズコードを出力するプログラムを作成します。 輪郭を描くように求められませんが、実際は反対です。 輪郭から、元のパーソンズコードを見つけます。 ルール コードゴルフの通常の規則が適用されます バイト数で最短のプログラムが勝ちます 入力は等高線であり、出力は有効なパーソンズコードでなければなりません 入力用の余分な空白に関する詳細は関係ありません。 前のルールのために、余計な空白を使用して、何らかの方法で出力やプログラムの一部をハードコーディングすることはできません ノート …

16
さまざまなプリンターを使用して1〜15を印刷
汎用性のある整数プリンターを作成することは素晴らしいことですが、多くの異なる数字を印刷する単一のコードを書くのは面倒です。数字を出力するだけでなく、次の数字を取得するための新しいスクリプトを作成するスクリプトを作成する方が簡単ではないでしょうか? チャレンジ: 単一の整数Nと実行可能コードを出力するコードを記述します。次のコードが出力さN+1れ、出力可能なコードが出力されますN+2。に到達するまでこのパスを続けますN = 15。(最後に印刷される番号は15でなければなりません)。 ルール: 入力なし(入力が空であると想定)。 完全なプログラムまたは機能、またはその他の便利な形式が許可されています。 最初のコードが出力されるはず1です。 先行ゼロを出力することはできません。あなたは印刷することができませんIE 01のために1。 出力はformatでなければなりませんN, Code_for_N+1。出力はコンマと単一のスペースで区切られていることに注意してください。のコードにN+1は、引用符がありません。 N , Code_for_N+1受け入れられません(コンマの前のスペース)。末尾の改行は問題ありません。 出力の最初の文字は数字でなければなりません。(先行スペースなし、またはans = N)。 印刷された番号は次のコードの一部であってはなりません(コードにはこの番号を含めることができますが、出力番号をコードの一部として使用することはできません) 例:の出力はN=2次のとおり2, printer 2です。この場合、printer 2はのコードですN=3。出力全体を使用することはできません:の2, printer 2コードとしてN=3。 スクリプトは異なる言語である場合があります データ型は関係ありません(数値は文字列でもかまいません)が、何にも囲まれることはできません(引用符、括弧など)。 出力されたコードがある場合は、N=15印刷するかSTOP!(ボーナスを参照)、何も印刷しない(スペースや改行も含めない)必要があります。 のコードN=15はクラッシュできません(ただし、STDERRへの出力は問題ありません)。 N=15プリントの出力コード16またはその他のもの(ボーナスケースを除く)の場合、失格となります。 組み込みのクイン演算子は使用できません。 ファイルシステムを介したソースファイルへのアクセスは許可されていません。 ボーナス: 15を出力するコードが「STOP!」を出力するコードも生成する場合は-10バイト Python構文を使用した例:(明らかに、これらは1〜15ではなく、選択した整数に対してのみ機能します。) N = 1 print "1, print 2" 1, print 2 --- N = 15 …
22 code-golf  string 

10
クアット。クイン+猫
Quatは、クインと人気のあるエソランキャットプログラムの組み合わせです。 チャレンジ 課題は、標準的なcatプログラムを作成することです。ユーザーが何を入力しても、プログラムは入力を標準出力にエコーします。 しかし、入力の長さが0よりも大きい場合及び 4の倍数、プログラムすべき出力独自のソースコード。Quatはポルトガル語のquatroに由来し、「four」に変換されます。 ルール 標準的な抜け穴が適用されます あなたはファイルからソースコードを読まないかもしれません 空の入力は空の出力を生成するはずです ボーナス 入力長が4の倍数である場合、クインlength/4タイムを印刷することで25%のボーナスを獲得できます。出力をスペースで区切ると、さらに5%のボーナス(末尾のスペースは許可されません)。 テストケース 次のテストケースがプログラムに適用されますin%4=0?cat:self(実際の言語ではありません)。 <empty input> -> <empty output> input -> input 1234 -> in%4=0?cat:self 12345678 -> in%4=0?cat:self 0%ボーナス 12345678 -> in%4=0?cat:selfin%4=0?cat:self 25%ボーナス 12345678 -> in%4=0?cat:self in%4=0?cat:self 30%ボーナス 得点 これはcode-golfです。バイト単位の最短コードが優先されます。
22 code-golf  quine 

13
2つの文字の間の文字
単一の小文字の単語を入力として受け入れ、単語内でアルファベットと同じ文字数の文字のペアの数を出力するプログラムを作成します。 たとえば、「自然」という単語には、4つのペアがあります。 nr:単語内の文字(a、t、u)の間に3つの文字があり、アルファベット(o、p、q)の文字の間に3つの文字があるため ae:単語内の文字(t、u、r)とアルファベットの文字(b、c、d)の間に3文字あるため tu:単語内では文字間に文字がなく、アルファベットでは文字間に文字がないため tr:単語(u)内の文字とアルファベット(s)の間に文字が1つあるため 4つのペアがあるため、この場合の出力は4になります。
22 code-golf 

15
シーザーシフト
シーザーシフトは、おそらく私たちがよく知っているものです。 (宿題としてもしているかもしれません。もしそうなら、これらの答えをコピーしないでください。先生はほとんど間違いなくここの答えのようなものを望んでいません。) そうでない場合に備えて、シーザーシフトは非常に単純な暗号形式です。暗号化される文字列と整数を取ります。次に、文字列内のすべてのアルファベット文字について、次の変換を実行します。 アルファベットでのキャラクターの位置を調べます(0ベース)。 最初に受け取った整数をその数に追加します。 数が25より大きい間、26を引きます。 アルファベットの位置を確認します。 残りのキャラクターはそのままにしておきます。 大文字のない英語とは何ですか? 例: abcdefghijklmnopqrstuvwxyz 1 -> bcdefghijklmnopqrstuvwxyza Spam spam spam sausage and spam! 13 -> Fcnz fcnz fcnz fnhfntr naq fcnz! abcdefghijklmnopqrstuvwxyz 52 -> abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz -1 -> zabcdefghijklmnopqrstuvwxy ABCxyz 3 -> DEFabc 仮定 印刷可能なASCII文字を受け取る場合があります 入力数は負の値にすることができ、常に-128より大きく128未満になります(-128<x<128) 大文字と非大文字を可逆的にエンコードできる必要があります。 関数やスニペットだけでなく、完全なプログラムを作成する必要があります STDINまたは最も近い代替から入力を取得します 入力の形式を選択できます。これを回答に明記してください シフトする必要がある文字はASCIIコードポイント0x41 - 0x5Aおよび0x61-0x7A-大文字と小文字 …

30
n次元空間の2点間の距離
もう1つ簡単な例を示します。 チャレンジ n次元空間内の2つの点が与えられた場合、それらの間の距離(ユークリッド距離とも呼ばれます)を出力します。 座標は有理数になります。唯一の制限は、言語の制限です。 最低次元は1、最高次元は言語が処理できるものです 2つのポイントが同じ次元であり、空の入力がないと仮定できます。 距離は、少なくとも小数点以下3桁まで正確でなければなりません。ご使用の言語が浮動小数点数をサポートしていない場合は、最も近い整数を出力してください。 ルール 通常どおり、機能または完全なプログラムが許可されます。 入力は、STDIN、コマンドライン、または関数の引数から取得できます。 入力形式はあなた次第で、回答で使用した形式を指定します。 出力は、stdoutまたは戻り値への印刷によって提供されます。 これはコードゴルフなので、バイト数が最も少なくなります!同点の場合、以前の回答が優先されます。 テストケース 各ポイントは、長さnのリストで表されます。 [1], [3] -> 2 [1,1], [1,1] -> 0 [1,2], [3,4] -> 2.82842712475 [1,2,3,4], [5,6,7,8] -> 8 [1.5,2,-5], [-3.45,-13,145] -> 150.829382085 [13.37,2,6,-7], [1.2,3.4,-5.6,7.89] -> 22.5020221314 ハッピーコーディング!

13
3つの入力を持つジョセフス問題
このサイトにはこの質問に似た質問がありますが、私はひねりを加えました。 あなたは3つの入力を持ち、円の中の人の数は、N、K番目の人は、各ステップでアウトカウント、およびQ番目の人存続します。円の中の人には1からnまでの番号が付けられています。 たとえば、20人のサークルでは、生存する20番目の人が最初に削除され、19番目の生存者が2番目に削除されます。通常、ジョセフスの問題は、ここで最初の生存者と呼ばれる最後に削除された人を決定することです。 これらの3つの入力で、生き残るためにq番目の人の数を返す最短のプログラムまたは関数を記述します。 明確な問題がある場合は、お知らせください。 いくつかの例: >>> josephus(20, 3, 9) 4 >>> josephus(4, 3, 1) 1 >>> josephus(100, 9, 12) 46 編集:すべての入力が有効であると仮定します。つまり、誰も0または負の数を要求せず、5人のサークル内の20番目の生存者を要求しません(つまり、1≤q≤n)。 編集: 12月2日の開始時のUTC + 7の深夜に回答を受け入れます。
22 code-golf 

4
複数プログラムQuinecatenate!
あなたの仕事は、3つの異なる言語A、B、Cを提供し、次のような2つの異なるプログラムPとQを作成することです。 Pは言語Aのクインですが、BまたはCのクインではありません。 Qは言語Bのクインですが、AとCのクインではありません。そして Pの後に連結されたQ(間に新しい文字が追加されていない)は、言語Cではキインですが、BやAではキインではありません。 これはcodegolfで、スコアは最終的な連結されたクインの長さです。繰り返しますが、適切なクインのルールを守って ください-ソースコードを読んだり、空のプログラムをしたりしない

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