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

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

12
点字グラフィックス
4x2のブロックにブール行列をカットし、点字としてそれらをレンダリングしU+2800... U+28FF。 [[0,1,0,0,1,0], [1,0,0,0,0,0], [1,0,0,0,1,0], [1,1,1,1,0,0]] ⣎⣀⠅ 次元が4と2の倍数でない場合、0で埋めます。 [[0,1,0], [1,0,0], [1,1,1]] ⠮⠄ 通常のゴルフ規則が適用され、入力形式は柔軟です。出力は、マトリックスの構造を持つか、マトリックスのように見える必要があります。たとえば、文字列のリスト。改行を含む単一の文字列。 ヒント:chr(0x2800 + 128*b7 + 64*b6 + 32*b5 + 16*b4 + 8*b3 + 4*b2 + 2*b1 + b0)ドットパターン b0 b3 b1 b4 b2 b5 b6 b7 より大きなテスト: [[0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0], [0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1], [0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1], [1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1], [1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,0], [1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0], [1,1,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0], [1,1,0,1,1,1,1,1,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1], [1,1,0,1,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0], [1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,0], [1,1,0,0,0,1,1,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,0], …

30
オレオ?いや…ロリポップ?
2009年以降、Androidのバージョンコード名は菓子をテーマにしています。Android 1.5はカップケーキ、Android 1.6はドーナツ、Android 2.0はエクレアなどです。実際、バージョン名はアルファベット順です! C -> Cupcake D -> Donut E -> Eclair F -> Froyo G -> Gingerbread H -> Honeycomb I -> Ice Cream Sandwich J -> Jellybean K -> Kitkat L -> Lollipop M -> Marshmallow N -> Nougat O -> Oreo 順番に: Cupcake, Donut, Eclair, Froyo, …
46 code-golf  string 

30
うん、でもいや
私の同僚は最近、次のJavaScriptを冗談として送ってきました。 let butScript = (nrOfButs) => { for(var i = 0; i < nrOfButs; i++){ if(i % 3 == 0){ console.log("Yeah") } if(i % 2 == 0){ console.log("But") } if(i % 3 == 1){ console.log("No") } } } コードは勤務時間中に作成されたため、明らかに会社のリソースの膨大な無駄でした。将来同様の事態を防ぐために、労働時間の無駄を最小限に抑える必要があります。そして、短いプログラムを書く方が速いというのは一般的な知識なので、このコードをできるだけ短くする必要があります! 入力 単一の非負整数。誤った入力を処理してはなりません。 出力 プログラムは、上記のスクリプトと同じ出力を生成する必要があります。行ごとに1つの単語を出力する必要があり、単語の数は元のスクリプトと一致する必要があります。 非改行の空白文字は各行の最後に(ただし、先頭にではなく)含めることができます。これらは非表示であるためです。出力の最後に、改行文字を1つ追加できます。 例 Input: 0 Output: Input: 1 …
46 code-golf  string 

30
スイス国旗を描く
タスク:スイス国旗を出力します。 ハッピースイス建国記念日/シュヴァイツァー連邦議会/Fêtenationale suisse / Festa nazionale svizzera / Fiasta naziunala svizra! 詳細: フラグは#FFFFFF、赤(#FF0000)の背景に白()の十字で構成されています。十字架は6x6の正方形で構成され、各辺にサイズ6x7の腕が接着されています。十字は、各辺に6単位の距離を持つ32x32の正方形の背景の中央にあります。(ソース) 出力サイズは参加者が選択できますが、画像はこれらの比率に正確に一致する必要があります。つまり、サイズは32の倍数でなければなりません。 最小バージョンは次のようになります。

25
インターネットに適した16進カラーコード
#ffffff(白)や#3764ef(青みがかった)などの16進数のトリプレットは、RGBカラーを表すためによく使用されます。これらは、#6桁の16進数(0〜f)、または実際の色が各桁を2倍にすることで得られる3桁で構成される場合があります。たとえば、#fffis #ffffffおよび#1a8is #11aa88です。 残念なことに、その3桁の速記は、今までインターネットが提供しなければならなかったゴルフの中で一番でした。 1〜7文字の文字列を受け取るプログラムまたは関数を作成します。 最初の文字は常にです#。 他の文字は常に16進数です:0123456789abcdef。 入力は、16進トリプレットの短縮形(または7文字が指定されている場合は完全形)です。次のパターンに基づいて入力の短縮形を展開する完全な16進数のトリプレットを出力する必要があります。 Input -> Output # -> #000000 (black) #U -> #UUUUUU #UV -> #UVUVUV #UVW -> #UUVVWW (usual 3-digit shorthand) #UVWX -> #UXVXWX #UVWXY -> #UVWXYY #UVWXYZ -> #UVWXYZ (not shorthand) 各々はU、V、W、X、Y、およびZ任意の16進数字であってもよいです。出力は常に7文字です。 例えば: Input -> Output # -> #000000 #0 -> #000000 #4 …

30
止まりますか?(強盗)
これが強盗のスレッドです。警官のスレッドはこちらです。 あなたの挑戦は、それを停止させる入力を見つけることによって警官の提出をクラックすることです。理由や、複数の入力がある場合に停止するすべての入力、または警官が意図した入力を見つける必要はありません。1つの入力だけで実行できます。 提出をクラックしたら、コメントへのリンクを投稿するか、警官の投稿を編集します。また、MODの提出物にフラグを立てて、警官の投稿で編集することもできます。また、使用した入力と警官の投稿へのリンクをこのスレッドの回答に投稿します。ほとんどの提出物をクラックする強盗が勝ちます。 異なる限り、複数の人が同じ警官の提出物にクラックを投稿できます。 (SEが重複した回答をコメントに変換した場合、この機能リクエストに投票することをお勧めします) クラックされていない提出物をお探しですか? fetch("https://api.stackexchange.com/2.2/questions/135363/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerText = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});}); <html><body><h1>Uncracked …

30
超越的な数のゴルフ
定義 代数的数とは、整数係数を持つ非ゼロ多項式のゼロである数です。たとえば、の平方根2はのゼロであるため、代数的ですx^2 - 2。 超越数は代数ではない実数です。 仕事 超越番号を選択する必要があります。 その後、正の整数取るプログラム/機能書くnと出力をn番目の小数選択した超越数の小数点以下の桁を。提出する際には、どの超越番号が使用されているかを明記してください。 0インデックスまたは1インデックスを使用できます。 例 e^2=7.389056098...超越数です。この番号の場合: n output 1 3 2 8 3 9 4 0 5 5 6 6 7 0 8 9 9 8 ... イニシャル7は無視されることに注意してください。 上記で述べたように、他の超越番号を選択できます。 得点 これはcode-golfです。バイト単位の最低スコアが勝ちです。
46 code-golf  math  number 

12
数字をフランス語に翻訳する
フランス人は独特の方法で数字を綴ります。 1-16は「正常」です 17〜19は10 + 7と表記されます。10 + 8、10 + 9。 20-69は「正常」です(OK、OK!それほどではありませんが、このチャレンジに参加しています) 70-79は60 + 10、60 + 11 ... 60 + 10 + 7、60 + 10 + 8、60 + 10 + 9です。 80-99は4 * 20、4 * 20 + 1、4 * 20 + 2 ... 4 * 20 + 16、4 * 20 + 10 …

23
選挙をハックする
あなたはプロのハッカーであり、あなたの上司は候補者が次の選挙に勝つのを手伝うようにあなたに命じたところです。あなたの仕事は、投票マシンのデータを変更して候補者の結果を高めることです。 投票マシンは、投票結果を2つの整数として保存します。候補者v1の投票数()と相手の投票数(v2)です。 数週間の調査の後、システムにセキュリティホールが見つかりました。v1整数xでの値を増やしv2、同じでの値を減らすことができますx。ただし、制約があり、セキュリティハッシュコードを一定に保つ必要があります。 セキュリティハッシュコード: (v1 + v2*2) modulo 7 また、x変更に気付かないように、の値は最小限でなければなりません。 あなたのプログラムは、入力として受け入れるべきv1とv2。xso の最適値を出力する必要がありますv1>v2。 結果をハッキングできない場合があります。それらを処理する必要はありません(これは上司に問題を引き起こす可能性がありますが、それは別の話です)。 テストケース 100,123 --> 14 47,23 --> 0 40,80 --> 21 62,62 --> 7 1134,2145 --> 511

27
除数スカイライン
正の整数の場合k、d(k)の約数の数を示しkます。例えば、d(6)ある4ので、6有する4(即ち除数を1、2、3、6)。 正の整数で与えられN、水平位置に「建物」の高さは、このようなことは確定文字、使用ASCII分野で「スカイライン」を表示kであるd(k)ためにk = 1, ..., N。以下のテストケースを参照してください。 ルール #テストケースに示されているように、空白文字以外の文字を常に使用できます。 アルゴリズムは、理論的には任意の高さで機能するはずNです。実際には、プログラムが時間、メモリ、データ型サイズ、または画面サイズによって制限されている場合は許容できます。 水平方向または垂直方向の先頭または末尾のスペースまたは改行が許可されます。 どんな合理的な手段でも入出力を取ることができます。 すべてのプログラミング言語で、プログラムまたは機能が許可されます。標準的な抜け穴は禁止されています。 バイト単位の最短コードが優先されます。 テストケース N = 10: # # # # # ### ######### ########## N = 50: # # # # # # # # # # # # # # # # # # # # # # …

30
ターミナルでテキストをアニメートする
ターミナルでテキストをアニメートする 目標 目標は、出力内の文字列「Hello world」を「アニメーション化」して、各文字が互いに大文字になるようにすることです。 プログラムは、各文字が大文字になった後に終了できます。 例えば; # Iteration 1 Hello world # Iteration 2 hEllo world # Iteration 3 heLlo world # Iteration 4 helLo world # Iteration 5 hellO world # Iteration 6 (note: it should capitilize the space char (ie: a break between iteration 5 and iteration 7) …


16
テキストの対角線を描く
単語リストの入力が与えられた場合、文字を斜めに配置して単語を出力します。 p r o p g u r z a a z m n l m d e i c s n o g d g e o l f (上記は入力の出力になりますprogramming puzzles and code golf。) 正確には、各単語は前の単語の最初の列と3行下から始まり、連続する各文字は1列右に1行下に移動します。 入力は、1つのスペースで区切られた単語の単一の文字列、または単語のリスト/配列として提供されます。単語は小文字ののみで構成され、a-z常に少なくとも1文字の長さになります。 出力は、単一の文字列、行の配列、または文字の配列の配列です。単一の末尾の改行を除いて、先頭または末尾の空白は許可されません。 さらなるテストケース: a bcd efgh i j a b c d e f …
46 code-golf  string 

19
パックマンはこの糸を食べることができますか?
ゲームのアーケード版では、パックマンはパックドットを食べます。しかし、この課題では、彼は文字列の英数字と句読点に飢えています。 あなたの仕事は、パックマンに文字列を送り、食べられるかどうかを評価し、パックマンの位置を含む文字列を返す関数を作成することです。 パックマン(<)はキャラクターを左から右に食べ、行くたびに各キャラクターにアンダースコアまたはスペースを残し、彼の目標は最初の位置-1から最後の位置+1に到達することです: 1. <Pac 2. _<ac 3. __<c 4. ___< ただし、パックマンの天敵であるゴーストは、「GHOST」という単語の文字の1つ(大文字と小文字を区別しない)に遭遇すると、彼を停止します。関数は、Pac-Manがghost文字を検出すると、その位置を含む文字列を返す必要があります。 1. <No! 2. _<o! 幽霊を打ち負かすことができるのはパワーペレットだけです。パックマンが幽霊に来る前に「PELLET」(大文字と小文字を区別しない)という単語の文字に到達すると、幽霊を食べて動き続け、そのペレットは使い果たされます。パワーペレットは積み重ねることができます(つまり、ppgg両方のゴーストで食べられます)。Tのそれは(のような、任意の他の文字として扱われ、無視できるような文字は、ゴーストとペレットの両方として存在しますa)。 1. <Pop 2. _<op 3. __<p 4. ___< さらに明確にするために、「パックマンがここで負ける」という文字列では、次の操作が発生します。 P <P, +1 Pellet (1 pellet) a <a c <c - <- M <M a <a n <n <[space] l <l, +1 Pellet (2 …

30
今、私は私のABCを知っています、あなたは私と一緒にゴルフに来ませんか?
この大文字と小文字を区別しない正確なテキストを出力するプログラムまたは関数を作成します。 A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z. (多くのアメリカの子供がアルファベットを暗記するのを学ぶことを学ぶアルファベットの歌に基づいていますが、より圧縮性のために編集されました。) 出力は上記とまったく同じに見える必要がありますが(大文字と小文字は区別されません)、各行の末尾のスペースや末尾の改行が含まれる場合があります。最後の期間に注意してください。 これはコードゴルフなので、バイト単位の最短コードが優先されます。

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