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

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

3
道順を与える
チャレンジ 次のような友人に地図を渡しました: | / | / | \ | \ D 上部で始まり下部で終わる単純なマップ。悲しいことに、あなたの友人はそれを取得しません。彼がそれを読むことができるようにマップをデコードできますか? 入力 入力は、以下からなる文字列であり|、/、\、D、^、Y、 (空間)、および改行。 | 同じ列にとどまるように指示します。 \ 右下の列に移動するよう指示します1。 / 左および下の列に移動するように指示します1。 D 宛先をマークします。 ^ (存在する場合)パスの分割を示します。 Y(存在する場合)パスの再結合を通知します。のように扱い|ます。 入力は、一種のパ​​スを作成するように配置されます。 | | \ | ^ / \ / | D | 2つのパスの間には常にスペースがあり、すべてのパスは再結合するか、入力の最後の行に到達します。マップごとに1つの分割のみがあります。入力マップの長さに制限はありません。2つ以上のパスが存在することはありません。 出力 出力は方向の文字列である必要があります。 「L」は、友人にLを左に動かし、一歩前進するように指示する必要があります。 「Rは、」移動にあなたの友人を教えてくださいR IGHTと前進1歩を踏み出します。 「F」は友人に1歩先に進むように指示する必要があります。 入力マップ例の場合、出力は次のようになります。 F F L F …
15 code-golf 

5
最寄りの時計の針を見つける
チャレンジ 真夜中を過ぎた秒数が与えられたら、可能な限り少ないバイトを使用して、時計の文字盤の任意の2つの針の間の最小の角度を出力します。 秒数は常に86400未満であると想定できます。角度は度またはラジアンで表すことができます。 リファレンスソリューションは次の場所にあります。 http //ideone.com/eVdgC0 テストケース(度単位の結果) 0 -> 0 60 -> 0.5 600 -> 5 3600 -> 0 5400 -> 45 6930 -> 84.75 50000 -> 63.333 明確化 時計には3つの針があります:時間、分、秒。 すべての針は連続的に動くため、時計の文字盤の目盛りの間には時針と分針があります。

5
課題に近いコード:インセプション
これは、この課題の続編です。課題に近いコード:整数の合計 このチャレンジは少し難しく、またクールなタイトルになります(これが私が選んだ理由です): 2つの文字列間のレーベンシュタイン距離を計算する 最後の課題と同様に、この課題のスコアは、コードと上記の引用の間のレーベンシュタイン距離です。 それでは、詳細を説明しましょう! あなたのプログラムは2つの入力を受け取ります。両方の文字列には末尾のスペースや改行はなく、それらの間のレーベンシュタイン距離を出力します。レーベンシュティエン距離は、ある文字列を別の文字列に変換するために必要な追加、削除、および置換の数として定義されます。計算方法の詳細については、上記のリンクにあるウィキペディアのページをご覧ください。プログラムが機能するかどうかをテストするには、この計算機を使用します。プログラムは、2つの文字列間のレーベンシュタイン距離のみを出力する必要があります。他に何かが出力された場合、失格となります。 I / Oの例: Inputs: test test2 Output: 1 Inputs: 222 515 Output: 3 Inputs: Test test Output: 1 コードにノーオペレーションやコメントがない場合があります。

2
水風船を埋める
この課題では、風船に満たされた水の量を考慮して、水風船のASCIIアートを表示する必要があります。 | __||__ | | / # #\ | | |######| | | |######| | | |######| | | |######| | | |######| | | \######/ | | | | | +----------+ 風船の描き方 サイズのバルーンを表示するnには、次の手順に従います(注:除算記号(/)が使用される場合は常に、整数の除算を表し、切り捨てます)。 |左右に10 本の垂直バー()-、下部に10個のダッシュ()、および左下と右下にプラス記号(+)で構成されるコンテナーを描画します。これにより、全体が12x11になり、「内部」が10x10になります。 | | | | | | | | | | | | | | …

9
単項へのBrainf ** kおよび戻る
制限されたソースおよび他のそのような課題に非常に有用である言語がある単項、プログラムは一つだけの文字で書かれているbrainfuck誘導体。あなたの仕事は、プログラムをBrainfuckから単項に変換するプログラムと、逆のプログラムを作成することです。両方のプログラムは同じ言語で作成します。スコアは、2つのプログラムの長さの合計になります。 どのようにブレインファックから単項式に変換しますか? この表に従って、最初にあなたのコードをバイナリに変換します: 次に、コードを1つの巨大な2進数にコードの順序で連結します。 1文字列の先頭にa を付けて、一意の2進数を確保します。 任意の文字を使用して、2進数から単項数に変換します。 例:+.だろう000000000000000000000000000000000000000000000000000000000000000000000000000000000000(84ゼロ)。 Brainfuck->単項仕様 結果のプログラムは信じられないほど巨大になるため、実際のプログラムではなく、結果のプログラムの長さだけを印刷します。 stdin、関数argなどを使用して、brainfuckプログラムを文字列として取得し、長さを出力します。 プログラムは常に有効で、8文字しか含まれていません。 単項-> Brainfuckの仕様 上記のアルゴリズムの逆を実装する必要があります。 ここでも問題のサイズが大きいため、入力は単項コードの長さを表す数値になります。 いつもと同じI / Oルール。 プログラムは常に有効で、8文字しか含まれていません。 テストケース Hello World- ++++++[>++++++++++++<-]>.>++++++++++[>++++++++++<-]>+.+++++++..+++.>++++[>+++++++++++<-]>.<+++[>----<-]>.<<<<<+++[>+++++<-]>.>>.+++.------.--------.>>+.=239234107117088762456728667968602154633390994619022073954825877681363348343524058579165785448174718768772358485472231582844556848101441556 フィボナッチ- ++++++++++++++++++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++++>++++++++++++++++>>+<<[>>>>++++++++++<<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>[<+>-]>[-]>>>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]>>[++++++++++++++++++++++++++++++++++++++++++++++++.[-]]<[++++++++++++++++++++++++++++++++++++++++++++++++.[-]]<<<++++++++++++++++++++++++++++++++++++++++++++++++.[-]<<<<<<<.>.>>[>>+<<-]>[>+<<+>-]>[<+>-]<<<-]<<++...=13067995222095367150854793937817629722033205198624522624687536186118993888926522550140580142585590431635487113180955099384652678100247403485397450658564826143160529351955621991895221530908461364045400531236124980271740502887704217664044858614821622360156740992393765239123681327824577149595724956207165558106099868913919959549896553103116795519592552089266360725543244154867904980260 これはコードゴルフなので、バイト単位の最低スコアが勝ちです! Unaryで解決策を考えている人はいますか?; P

3
バロウズ、ホイーラー、バック
バックグラウンド バローズ-ウィーラー変換(BWT)のようなプレーンテキストとして文字列の特定の種類の類似文字の大実験における結果は、文字列の文字の可逆的置換です。たとえば、bzip2圧縮アルゴリズムで使用されます。 BWTは次のように定義されます。 などの入力文字列が与えられた場合、codegolf可能なすべての回転を計算し、辞書式順序で並べ替えます。 codegolf degolfco egolfcod fcodegol golfcode lfcodego odegolfc olfcodeg 文字列のBWTは、codegolf各文字列の最後の文字がその順序で構成されている文字列、つまり上のブロックの最後の列です。のためcodegolf、これはをもたらしfodleocgます。 文字列codegolfとgolfcode結果は同じ文字列になるため、この変換自体は可逆的ではありません。ただし、文字列がで終わることがわかっている場合f、可能なプレイメージは1つだけです。 仕事 STDINから、またはコマンドラインまたは関数の引数として単一の文字列を読み取り、BWTまたはその入力文字列の逆数を出力または返す、複雑なプログラムまたは関数を実装します。 入力文字列にスペースが含まれていない場合、サブミッションは入力に単一のスペースを追加し、BWTを計算する必要があります。 入力文字列にすでにスペースが含まれている場合、後続のスペースがあるBWTのプリイメージを計算し、そのスペースを削除する必要があります。 例 INPUT: ProgrammingPuzzles&CodeGolf OUTPUT: fs&e grodllnomzomaiCrGgPePzu INPUT: fs&e grodllnomzomaiCrGgPePzu OUTPUT: ProgrammingPuzzles&CodeGolf INPUT: bt4{2UK<({ZyJ>LqQQDL6!d,@:~L"#Da\6%EYp%y_{ed2GNmF"1<PkB3tFbyk@u0#^UZ<52-@bw@n%m5xge2w0HeoM#4zaT:OrI1I<|f#jy`V9tGZA5su*b7X:Xn%L|9MX@\2W_NwQ^)2Yc*1b7W<^iY2i2Kr[mB;,c>^}Z]>kT6_c(4}hIJAR~x^HW?l1+^5\VW'\)`h{6:TZ)^#lJyH|J2Jzn=V6cyp&eXo4]el1W`AQpHCCYpc;5Tu@$[P?)_a?-RV82[):[@94{*#!;m8k"LXT~5EYyD<z=n`Gfn/;%}did\fw+/AzVuz]7^N%vm1lJ)PK*-]H~I5ixZ1*Cn]k%dxiQ!UR48<U/fbT\P(!z5l<AefL=q"mx_%C:2=w3rrIL|nghm1i\;Ho7q+44D<74y/l/A)-R5zJx@(h8~KK1H6v/{N8nB)vPgI$\WI;%,DY<#fz>is"eB(/gvvP{7q*$M4@U,AhX=JmZ}L^%*uv=#L#S|4D#< OUTPUT: <#Q6(LFksq*MD"=L0<f^*@I^;_6nknNp;pWPBc@<A^[JZ?\B{qKc1u%wq1dU%;2)?*nl+U(yvuwZl"KIl*mm5:dJi{\)8YewB+RM|4o7#9t(<~;^IzAmRL\{TVH<bb]{oV4mNh@|VCT6X)@I/Bc\!#YKZDl18WDIvXnzL2Jcz]PaWux[,4X-wk/Z`J<,/enkm%HC*44yQ,#%5mt2t`1p^0;y]gr~W1hrl|yI=zl2PKU~2~#Df"}>%Io$9^{G_:\[)v<viQqwAU--A#ka:b5X@<2!^=R`\zV7H\217hML:eiD2ECETxUG}{m2:$r'@aiT5$dzZ-4n)LQ+x7#<>xW)6yWny)_zD1*f @F_Yp,6!ei}%g"&{A]H|e/G\#Pxn/(}Ag`2x^1d>5#8]yP>/?e51#hv%;[NJ"X@fz8C=|XHeYyQY=77LOrK3i5b39s@T*V6u)v%gf2=bNJi~m5d4YJZ%jbc!<f5Au4J44hP/(_SLH<LZ^%4TH8:R INPUT: <#Q6(LFksq*MD"=L0<f^*@I^;_6nknNp;pWPBc@<A^[JZ?\B{qKc1u%wq1dU%;2)?*nl+U(yvuwZl"KIl*mm5:dJi{\)8YewB+RM|4o7#9t(<~;^IzAmRL\{TVH<bb]{oV4mNh@|VCT6X)@I/Bc\!#YKZDl18WDIvXnzL2Jcz]PaWux[,4X-wk/Z`J<,/enkm%HC*44yQ,#%5mt2t`1p^0;y]gr~W1hrl|yI=zl2PKU~2~#Df"}>%Io$9^{G_:\[)v<viQqwAU--A#ka:b5X@<2!^=R`\zV7H\217hML:eiD2ECETxUG}{m2:$r'@aiT5$dzZ-4n)LQ+x7#<>xW)6yWny)_zD1*f @F_Yp,6!ei}%g"&{A]H|e/G\#Pxn/(}Ag`2x^1d>5#8]yP>/?e51#hv%;[NJ"X@fz8C=|XHeYyQY=77LOrK3i5b39s@T*V6u)v%gf2=bNJi~m5d4YJZ%jbc!<f5Au4J44hP/(_SLH<LZ^%4TH8:R OUTPUT: bt4{2UK<({ZyJ>LqQQDL6!d,@:~L"#Da\6%EYp%y_{ed2GNmF"1<PkB3tFbyk@u0#^UZ<52-@bw@n%m5xge2w0HeoM#4zaT:OrI1I<|f#jy`V9tGZA5su*b7X:Xn%L|9MX@\2W_NwQ^)2Yc*1b7W<^iY2i2Kr[mB;,c>^}Z]>kT6_c(4}hIJAR~x^HW?l1+^5\VW'\)`h{6:TZ)^#lJyH|J2Jzn=V6cyp&eXo4]el1W`AQpHCCYpc;5Tu@$[P?)_a?-RV82[):[@94{*#!;m8k"LXT~5EYyD<z=n`Gfn/;%}did\fw+/AzVuz]7^N%vm1lJ)PK*-]H~I5ixZ1*Cn]k%dxiQ!UR48<U/fbT\P(!z5l<AefL=q"mx_%C:2=w3rrIL|nghm1i\;Ho7q+44D<74y/l/A)-R5zJx@(h8~KK1H6v/{N8nB)vPgI$\WI;%,DY<#fz>is"eB(/gvvP{7q*$M4@U,AhX=JmZ}L^%*uv=#L#S|4D#< INPUT: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa OUTPUT: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa INPUT: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa OUTPUT: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 追加のルール …

8
積分三角形と積分中央値
各辺の長さが整数である三角形ABC(積分三角形)を考えます。ABCの中央値を、頂点から反対側の中点までの線分になるように定義します。次の図では、赤い線分が中央値を表しています。三角形には3つの中央値があることに注意してください。 してみましょうnはいくつかの正の整数です。各辺の長さがn以下の非縮退積分三角形には、少なくとも1つの積分中央値がありますか? チャレンジ 与えられた最大辺の長さnに対して少なくとも1つの積分中央値を持つ積分三角形の数を計算するプログラムを作成します。辺の長さの順序は重要ではありません。つまり、<6,6,5>は<5,6,6>と同じ三角形を表し、1回だけカウントする必要があります。<1,2,3>などの縮退三角形を除外します。 得点 私のマシンでプログラムが60秒で三角形の数を生成できる最大のnは、スコアです。最高スコアのプログラムが勝ちます。私のマシンはSony Vaio SVF14A16CLB、Intel Core i5、8GB RAMです。 例 ましょうT(Nは)入力にプログラムすることN。 T(1) = 0 T(6) = 1 T(20) = 27 T(22) = 34 T(1)= T(2)= T(3)= T(4)= T(5)= 0であることに注意してください。積分辺の組み合わせは積分中央値を生成しないためです。ただし、6に到達すると、三角形<5,5,6>の中央値の1つが4なので、T(6)= 1 であることがわかります。 また、T(22)はダブルカウントが問題になる最初の値であることに注意してください。三角形<16,18,22>には中央値13と17(および2sqrt(85))があります。 中央値の計算 三角形の中央値は、次の式で計算できます。 Current top score: Sp3000 - 7000 points - C

13
10進数の時刻変換
前書き 時間は混乱しています。60秒から1分、60分から1時間、24時間から1日(そして厄介なam / pmは言うまでもありません!)。 今日、そのような愚かさの余地はないので、私たちは唯一の賢明な代替案を採用することに決めました:小数日!つまり、各日は1単位とみなされ、それより短いものはその日の小数部として書き込まれます。たとえば、「12:00:00」は「0.5」と記述され、「01:23:45」は「0.058159」と記述されます。 新しいシステムに慣れるには時間がかかるため、双方向で変換できるプログラムを作成する必要があります。 チャレンジ 「hh:mm:ss」のISO-8601形式で現代の時刻を指定すると、選択した言語でプログラムを記述し、同等の10進小数単位を返します。同様に、小数を指定すると、プログラムは最初に指定された最新の形式で時刻を返す必要があります。 次の前提を立てることができます。 現代の時間の入力と出力は、「00:00:00」から「24:00:00」の範囲で指定できます 10進数の時間の入力と出力の範囲は「0」から「1」であり、最大5桁の小数点以下桁数(「0.12345」など)を受け入れ/出力できる必要があります。より高い精度が許容されます プログラムは、入力に基づいて実行する変換方向を認識できる必要があります。 時間関連の関数/ライブラリを使用できません 勝者は、基準を達成する最短のコードによって決定されます。それらは、少なくとも10進数の7日単位で、または十分な提出があった場合に/選択されます。 例 例として使用するJavaScriptコードの(意図的に)不十分な記述を以下に示します。 function decimalDay(hms) { var x, h, m, s; if (typeof hms === 'string' && hms.indexOf(':') > -1) { x = hms.split(':'); return (x[0] * 3600 + x[1] * 60 + x[2] * 1) / …

2
中括弧などを修正する
あなたの使命は、あなたがそれを受け入れることを選択した場合、括弧、括弧、および括弧の最小数を追加して、特定の文字列(括弧、括弧、および括弧のみを含む)が正しい括弧に一致するようにすることです。ペアのブレース間の最大距離を確保することにより、追加されたシンボルの結び付きを解除する必要があります。これら2つのルールに一致する正しい答えを1つだけ返す必要があります。関係が存在する場合、それ以上の関係は、適切と思われる方法で破損する可能性があります。 例: input output // Empty String is a legal input [ [] // Boring example [()] [()] // Do nothing if there's nothing to be done ({{ ({{}}) // NOT (){}{} (0 + 0 + 0). Maximum distance is 4 + 2 + 0, ({{}}) [([{])]} {[([{}])]} // NOT …

2
RoboCrittersをBrainfに翻訳***
RoboCritters(語源)は真新しい難解なプログラミング言語です(気にせずに探してみてください、私はそれを発明しました)。これはBrainfuck(BF)の一種で、通常の演算子置換スキームよりも少し複雑です。RoboCrittersのすべてのプログラムは、7文字のみを含むテキストの長方形のグリッドに加えて、グリッドを形成する改行です。. []/\| RoboCrittersプログラムの例: |\/||./|[]|| [..][][] | |/\|[..][..] [..] \/\/ RoboCrittersプログラムをBFに変換するには、グリッド内の各非改行文字を通常の読み取り順序(左から右、次に上から下)で見てください(例:)|\/||./|[]||[..][][] ||/\|[..][..][..] \/\/。 現在のキャラクターから右下に伸びるグリッドの4×2セクションが、以下にリストされている8つのロボットクリッターのいずれかに正確に一致する場合、対応するBFコマンド(><+-.,[])を(最初は空の)BFプログラムに追加します。 4×2グリッドセクションの場合 がロボットクリッターのいずれとも一致しないか、範囲外になった場合、BFプログラムには何も追加されません。 ジョイボット、>コマンド: [..] \][/ Calmbot、 <コマンド: [..] /][\ Squidbot、 +コマンド: [..] //\\ スパイダーボット、 -コマンド: [..] |||| バニーボット、 .コマンド: [][] [..] トゥースボット、 ,コマンド: [..] |/\| Foxbot、 [コマンド: |\/| [..] バットボット、 ]コマンド: [..] \/\/ したがって、サンプルプログラムを読む |\/||./|[]|| [..][][] | …

7
レストランはどこに置けばいいですか?
あなたはレストランのオーナーです。y軸と呼ばれる主要道路が1つしかないデカルトの新しいエリアに開通しています。あなたのレストランとそのエリアの各家からの合計距離を最小化するようにレストランを配置したい。 入力: 入力は n, the number of houses house1 house2 house3 ... houseN ここで、各家はフォームの座標x yです。各単位は1キロメートルを表します。 入力を文字列として取得するか、引数として選択した形式で入力を取得する関数を提供できます。 出力:レストランのy座標(y軸に配置されることに注意してください)。実際には、道路の脇にありますが、違いはごくわずかです。 n番目の家であれば基本的に、h_nかつD距離関数である、あなたが見つけたいkというようにD(h_0, (0, k)) + D(h_1, (0, k)) + D(h_2, (0, k)) + ... + D(h_n, (0, k))最小化されます。 距離は、顧客が自宅からレストランまで正確に直線で移動するかのように計算されることに注意してください。それは(x, y)あなたのレストランまでの距離ですsqrt(x^2 + (y - k)^2)。 出力は、少なくとも小数点以下2桁まで正確でなければなりません。 出力は文字列として出力するか、関数から返すことができます。 入出力の例: Input: 2 5.7 3.2 8.9 8.1 Output: …

6
文字を共有せずに文字列を印刷する
編集:空白を再利用できます。 あなたの仕事は、同じ言語でn個のプログラム(または関数、またはパラメーターまたは関数名を使用せずに関数の本体)を書くことです。KプログラムTHは、出力すべき(カーディナル)数kの標準英語(オプション最後の改行を有する)小文字です。したがって、最初のプログラムは出力する必要がoneあり、2番目のプログラムは出力する必要がありますtwo。2つの部分を持つ数値の場合は、twenty-one。 ただし、提出物の2つのプログラムは、非空白文字または有用な作業を行う空白文字を共有できません。たとえば、あなたの最初のプログラムはただではない場合"one"、その後のどれ" o nとe、あなたの他のプログラムで再び使用することはできません。 空白文字(スペース、改行、タブ)を2つ以上のプログラムで使用できます。これらは、セパレーターまたはインデントとしてのみ機能し、それ自体では何もしません。したがって、それらをWhitespace言語で再利用したり、複数のプログラムの文字列で使用したりすることはできません。 印刷可能なASCII文字、タブ、および改行(CRおよびLFを含む)のみを使用できます。すべてのプログラムには少なくとも1文字が含まれている必要があります。 スコアは1 /プログラムサイズ^ 1.5の合計です。最高スコアが勝ちます。このスタックスニペット(またはこのCJamコード)を使用して、スコアを計算できます。 function updatescore(a){var l=a.value.split("\n"),s=0;for(var i=0;i<l.length;i++){var t=l[i].length;t-=t&&l[i][t-1]=="\r";if(t)s+=Math.pow(t,-1.5);}document.getElementById('result').textContent=s;} <textarea id="input" placeholder="Put your code here, one per line." style="width:100%;height:150px;box-sizing:border-box" oninput="updatescore(this)" onpropertychange="updatescore(this)"></textarea><div>Your score: <span id="result">0</span></div> コードスニペットを実行するHide resultsスニペットを展開

4
40本のスティックを注文する
幅が同じで高さが異なる40本のスティックがあります。右から見ると10本のスティックが見え、左から見ると再び10本のスティックが見えるように、それらを並べて配置できる配置はいくつありますか? たとえば、このような順序は次のとおりです。 黒い棒は隠れており、赤い棒は左から見たときに見ることができるものであり、青い棒は右から見たときに見ることができるものであり、紫色のもの(つまり最も長いもの)は見ることができるものです両側から。 テストケースとして: 左から2つ、右から2つを見るために3スティックの注文数がある場合は2 5本のスティックがある場合、左から3つ、右から3つを見るための注文数は6です。 10スティックの場合、左から4つ、右から4つを見るための注文数は90720です。

14
CodeGolf-ノイズを無視する#1
説明書 Barryは、クライアントのショップで行われた購入に関する情報を提供する小さなAPIを担当するそれほど優れたバックエンド開発者ではありません。ただし、彼は素晴らしい仕事をしておらず、上司から代わりにクライアント側で修正するように言われています。理想的にはあなたのようなカンマ区切り値を受けるべき927,2,45,90のようなものに対応しますitem_id、item_amount、unit_price、total この最初のパズルでは我々だけを気にitem_idしてitem_amountいますが、問題を提示する代わりに他のフィールドを必要としています。バリーは、時々混ぜものとリターンノイズ出力の一部として、彼はまた戻って、順序が間違っを取得を取得しnoise、noise、unit_price、total、item_id、item_amount。 あなたのタスク あなたはのペアマップ(または類似の構造)に格納する必要があるitem_idとitem_amountにかかわらず、バリーが正しくかどうか、それらを返し、可能な文字の最小数に新しい行の各要素を印刷するかどうか。(保存は必須ではなく、出力に注意するだけです) サンプル入力(正しい形式と乱雑な形式の混合) 103,2,50,100 106,1,900,900 459,40,150,300,67,2 4,20,30,6000 言い換えると、入力は、&が重要な場所のいずれかa,b,x,xまたはx,x,x,x,a,b場所になります。csvのすべての行で(または他の名前)と呼ばれる変数があると仮定して、コードを提供する必要があります。abG サンプル出力 103,2 106,1 67,2 //This one was messy 4,20 公差 答えになると、許容範囲に一定のマージンがあります。同様の形式で正しい値に準拠した回答も受け入れられます。フォーマットは好き[a,b]、(a,b)または{a,b}有効であるが、a,b好ましいです。 最初のパズルは、簡単かつ迅速に解決できるという事実により、受け入れられていましたが、一部の人々もそれを気に入っていると感じました。それで、今のところクイックゴルフを続けます

6
リアルタイムの文字列照合
仕事 タスクは、選択したリアルタイムの正確な文字列照合アルゴリズムをゴルフすることです。 入力 新しい行で区切られた、標準入力で提供される2行のテキスト。最初の行には「パターン」が含まれており、単にcharactersから描かれたASCII文字列になりますa-z。 2行目にはより長い「テキスト」が含まれ、文字から単にASCII文字列が描画されa-zます。 出力 完全に一致する場所のインデックスのリスト。発生した各一致の開始位置を出力する必要があります。 仕様 アルゴリズムは、パターンの前処理に線形時間を費やすことができます。次に、テキストを左から右に読み取り、テキスト内のすべての文字に対して一定の時間をかけて、新しい一致が発生するとすぐに出力する必要があります。もちろん、試合は互いに重なり合うことができます。 アルゴリズム 多くのリアルタイム完全一致アルゴリズムがあります。1つは、たとえばKMPのwikiで言及されています。好きなものを使用できますが、常に正しい答えを出力する必要があります。 人気のある言語を好む人も独自の方法で勝つことができるように、言語ごとのリーダーテーブルを保持します。実装したアルゴリズムを説明してください。 リアルタイム リアルタイムの意味については多くの混乱があったようです。それは単に線形時間を意味するものではありません。そのため、標準のKMPはリアルタイムではありません。質問のリンクは、KMPのリアルタイムバリアントに関するKMPのWikiページの一部を明示的に指し示しています。ボイヤー・ムーア・ガリルもリアルタイムではありません。このcstheoryの質問/回答では問題について説明しますが、「リアルタイム完全一致」または類似の用語をGoogleで検索することもできます。

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