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

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

13
スペインの時間です!
コードを使用して比較的簡単に実装できる単純なタスクがあります。あなたの目標は、HH:MM形式で時刻を指定すると、スペイン語で書かれた時刻を出力するプログラムを作成することです。多くの人はおそらくこれを行う方法を知らないので、詳しく説明します。 スペイン語の時間はかなり論理的です。通常、「Es la / Son las(hour)y(minutes)」のパターンに従います。時間は12時間形式であり、「Es la」は時間が1(つまり1時)の場合にのみ使用されます。議事録は別の話です。分が30未満の場合、上記のように表されます。ただし、分が30を超える場合、時間は切り上げられ、分が減算されます。たとえば、7:35は「8時間-25分」に相当します。さらにいくつかの例を以下に示します。必要なスペイン語の番号のリストはここにあります。一部の数字にはアクセントがありますが、これらは必要ありません。 注:ソースには「uno」と書かれていますが、文法的に正しいためには「una」である必要があります。これは、これまでの回答には影響しません。 注2:また、「cero」は不要です。プログラムが「Es la una」または「Son las tres」を出力する場合、それで問題ありません。これらのルールの変更については申し訳ありません。 ルール 入力は、STDINまたはご使用の言語の同等物を通じて提供されます。 外部ライブラリからの読み取りはありません。 コードは無効な入力で何でもできます。 ボーナス -10は、コードにこれらの余分なフレーズが追加されている場合です。「y cuarto」は:15、「y media」は:30、「menos cuarto」は:45(切り上げ)です。 -15は、コードがAMとPMを処理できる場合、「de lamañana」と「de la tarde」で応答します。 入力が提供されない場合、コードが現在の時刻を変換できる場合は-15。 得点 これはコードとゴルフのチャレンジであり、文字ではなくバイトでスコアリングされます。 例 入力:8:10 出力:Son las ocho y diez. 入力:6:45 出力:Son las siete menos quince (or cuarto). 入力:1:29 出力:Es la una y veintinueve. …

14
すべての国コードを印刷する
ISO 3166-1は、すべての国コードを定義する規格です。よく知られている2文字のコード(US、GB、JPなど)は、Alpha-2コードと呼ばれます。 2文字の場合、26 2 = 676の可能なコードしかなく、グリッドにうまく配置できます。この表は、どのコードが実際に使用されているか、予約されているかなどを確認するための概要として役立ちます。 この課題は簡単です。以下に示すように、プレーンASCIIを使用して、このグリッドに割り当てられているすべてのコードをSTDOUTに出力する必要があります。 AA AC AD AE AF AG AI AL AM AN AO AP AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BU BV BW BX BY BZ …

16
いくつかのアクションを見てみましょう!
高速で騒がしい車、特にクラッシュの多い車のアクション映画を好まないのは誰ですか?アスキーアートのアクションショットが嫌いな人はいますか? シーンは次のとおりです。 2台の車が直線道路の反対側から始まります(間に60個のスペースがあります)。彼らは一定の速度でお互いに向かって運転を開始します。左側の車は毎秒1スペースで運転し、右側の車は毎秒2スペースで運転します。 明らかに、車はお互いを通過できません。そのためn ≥ 20、シーンは、衝突が発生した位置にボンネットが上にある2台の衝突した車になります。 映画好きの私は、シーンの美しさを楽しむために、時々シーンを一時停止します。 nシーンの開始からの秒数を表す整数(関数引数またはSTDIN)を指定すると、その瞬間のシーンが表示されます。 これは開始シーンで、前輪の間に60のスペースがあります。 __ __ _/ \_ _/ \_ o o o o これは11秒後のシーンです。 __ __ _/ \_ _/ \_ o o o o これは、クラッシュ後の外観です(クラッシュ後にボンネットが立ち上がることに注意してください): __ __ _/ \/\/ \_ o oo o 私は2台の車がクラッシュするのを見たいだけなので、スペース、改行、++は関係ありません。 これはコードゴルフであるため、バイト単位の最短コードが優先されます。後で追加された回答は、現在受け入れられている回答よりも短い場合でも勝つことができます。

26
文字列をハッシュで囲む
私はすでにPythonでこれを作成しましたが、かなり短縮できるようです: txt = input("Type something.. ") c = "#" b = " " print(c * (len(txt) + 4)) print(c, b * len(txt), c) print(c, txt, c) print(c, b * len(txt), c) print(c * (len(txt) + 4)) したがって、ユーザーが次のように入力した場合: Hello World プログラムは次を印刷します。 ############### # # # Hello World # # # ############### …
24 code-golf  string 

23
シーザー等価
対応する文字間の距離(カウントアップ)が同じ場合、2つの文字列は「Caesarに相当」です。はい、私はこの用語を作りました。以下に例を示します。 「Abc」と「Cde」は同等であるため、 distance from a-c == 2 distance from b-d == 2 distance from c-e == 2 大文字小文字を区別しても違いはありません。 「Hello」と「World」はCaesarで同等ではありません distance from h-w == 15 distance from e-o == 10 distance from l-r == 6 distance from l-l == 0 distance from o-d == 15 「Abcd」と「Yzab」はCaesarと同等です distance from a-y = 24 …
24 code-golf  string 

6
レンガの構造は安定していますか?
標準的な石積みのレンガをとして表現しましょう[__](上部が開いているという事実を無視します)。これらのレンガを積み重ねると、レンガの構造では通常のように、他のすべてのレイヤーがレンガの半分だけオフセットされます。 [__][__][__][__] [__][__][__][__] [__][__][__][__] [__][__][__][__] したがって、各ブリックには最大で6つの隣接があり、2つのブリックが直接垂直に並ぶことは不可能です。 重要な点は、これらのレンガの配置は迫撃砲ではなく、単に重力によって一緒に保持されることです。したがって、構造内の各ブリックが安定していることが重要です。そうでなければ、構造全体が不安定になります。 個々のブリックが安定する可能性がある3つの方法があります。 地面のレンガ(レンガの一番下のライン)は安定しています。 直下に2つのブリックがあるブリックは安定しています: [__] <- this brick is stable [__][__] <- because these bricks hold it up 同じ側​​に上下にレンガがあるレンガはすべて安定しています。 [__] [__] [__] [__] <- these middle bricks are stable [__] [__] because the upper and lower bricks clamp them in [__] [__] [__] [__] …


1
「Twinkle Twinkle Little Star」の歌詞を印刷します
あなたの目標は、各ノートが演奏されるときに曲「Twinkle Twinkle Little Star」の歌詞を印刷することです。 コンピューターのマイクにメモが聞こえます。ノートのピッチ(ただし、必ずしも長さではない)が正しい場合は、適切な音節を出力します。それ以外の場合は、何もしません。各音符の長さは少なくとも0.5秒で、音符の間には少なくとも1/4の区切りがあります。 ここで提供される音符と次の歌詞を使用します(縦線は音節の区切りを表します)。 Twin | kle、twin | kle、lit | tle star、 私はあなたが何であるかをどのように判断しましたか。 世界を非常に上に、 空のひし形のように。 Twin | kle、twin | kle、lit | tle star、 私はあなたが何であるかをどのように判断しましたか。 ここで音楽の録音を見つけることができます。 例 コンピューターは中央のCを聞いて「Twin」を印刷します 別のミドルCが聞こえ、「足首」が印刷されます。 次に、別の中央のC(間違った音)が聞こえ、何もしません。 次に、中央のCの上のGが聞こえ、「ツイン」などが出力されます。 ルール 句読点は示されているとおりでなければなりません。 間隔は、示されているとおりである必要があります(スペースと改行を含む)。 空白は、前の音節または次の音節とともに出力されます。
24 code-golf  music  audio 

3
画面を王のタイルで埋める
次の13の正方形の王のタイルが飛行機を非周期的に並べることが証明されました。つまり、正方形が隣接するすべての辺が同じ色のグリッドに配置されている場合、パターンの変換はそれ自体と一致しません。 各タイルをテキストで3×3グリッドで表し、中央と隅にスペースを入れ、エッジにある赤、緑、青、黄、グレーの代わりに1〜5の数字を使用します。 2 2 2 1 1 1 4 3 2 2 4 3 2 1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4 3 2 3 2 3 2 1 2 1 …

24
最短Minmod関数
minmod関数は馴染みの変異体である分の偏微分方程式の傾きを制限する高解像度スキームに表示され、。多数の斜面が与えられると、斜面間の相対的な兆候に注意しながら、最も平坦な斜面を選び出します。 この関数は、任意の数のパラメーターを取ります。次に、minmod(x 1、x 2、...、x n)は次のように定義されます。 min(x 1、x 2、...、x n)、すべてのx iが厳密に正の場合 max(x 1、x 2、...、x n)、すべてのx iが厳密に負の場合 それ以外の場合は0。 整数入力のみを考慮します。これは実装に実際には影響せず、一部の(難解な)言語ではより包括的である必要があるためです。 STDIN、ARGV、または関数引数(可変引数関数よりも便利な場合は配列を使用できます)を介してn 個の符号付き整数(n> 0の場合)を取り、結果を返すか(STDOUTに)出力するプログラムまたは関数を作成しますminmod(A、B)。 組み込みのminまたはmax関数を使用してはなりません(実際にそれを見つけることができる場合は、組み込みのminmodも使用しないでください)。また、組み込みの並べ替え関数を使用しないでください。ただし、少数固定アイテム(5未満)。 言語に符号付きの型がない場合は、符号なしの型を使用して、2の補数として解釈できます。例えばあなたの言語のみ符号なしバイトを使用している場合、あなたが使用できる255ために立つこと-1と128のために立つこと-128など、 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 テストケース Input Output 2 2 -3 -3 0 0 3 -5 0 2 4 1 1 0 1 2 0 -1 1 2 0 -4 -2 -3 …

4
4日はあなたと共にありますように!
スターウォーズの日を記念して、次のテキストを表示するプログラムを作成し、スターウォーズのオープニングクロールのようにスクロールします。 It is a period of civil war. Rebel spaceships, striking from a hidden base, have won their first victory against the evil Galactic Empire. During the battle, Rebel spies managed to steal secret plans to the Empire's ultimate weapon, the Death Star, an armored space station with enough power …

15
文字列のスクラブルスコアと有効性を決定する
あなたの仕事は、与えられた文字列が適切な長さであり、スクラブルタイルで表現できるかどうかを判断し、そうであれば、各文字のスコアの合計を出力することです。 Scrabble:のプレイ方法がわからない場合は、A〜Zのさまざまな文字が印刷された100個のタイルと、任意の文字を表す2つのワイルドカードがあります。各文字には一定数のポイントがあり、各タイル(必ずしも単語ではない)は1回しか使用できません。単語が再生されると、使用される各タイルのポイント値が合計され、それがスコアになります。限られた数の文字が利用可能であるため、単語に特定の文字を含めることができるのは、その文字にタイル+未使用のワイルドカードが含まれている場合だけです。スクラブルボードは15×15セルなので、単語は2〜15文字でなければなりません。 英語版での各文字の量とスコアのリストについては、下記を参照してくださいまたはhttp://boardgames.about.com/od/scrabble/a/tile_distribute.htm(アーカイブ)。 手紙の数量ポイント手紙の数量ポイント ------------------- ------------------- A 9 1 O 8 1 B 2 3 P 2 3 C 2 3 Q 1 10 D 4 2 R 6 1 E 12 1 S 4 1 F 2 4 T 6 1 G 3 2 U 4 1 H 2 …

7
モールスデコードゴルフ
私はスペースに対する憎しみの高まりに不安になりました。この答えは、この暗示的な空白の除去からモールス信号が安全であることを確認するきっかけとなりました。 したがって、あなたの仕事は、モールス信号をすべてのスペースを削除して正常に翻訳できるプログラムを作成することです。 ルール: 入力は、ダッシュとドット(ASCII 2Dおよび2E)のみで構成される文字列になります。他の文字を含む入力の出力は未定義です。入力(stdin、テキストファイル、プロンプトユーザーなど)を受け取るために、選択した言語に都合のよい方法を自由に使用してください。モールス信号入力はA〜Zの文字のみで構成され、一致する数字や句読点は必要ないと想定できます。 出力には、この辞書ファイルに含まれる単語のみが含まれている必要があります(ここでも、辞書ファイルにアクセスするための便利な方法を自由に使用してください)。有効なデコードはすべて標準出力に出力する必要があり、入力内のすべてのドットとダッシュを使用する必要があります。出力内の一致した各単語はスペースで区切る必要があり、可能なデコードはそれぞれ改行で区切る必要があります。大文字、小文字、または大文字と小文字が混在する出力を便利に使用できます。 上記の1つの例外を除き、標準の抜け穴に対するすべての制限が適用されます。本当に必要な場合は、インターネット接続経由で要件2で参照されている辞書ファイルにアクセスできます。URLの短縮は許容されますが、goo.gl / 46I35Zが最短になると思われます。 これはコードゴルフで、最短のコードが勝ちます。 注: Pastebinに辞書ファイルを投稿すると、すべての行末がWindowsスタイル0A 0Eシーケンスに変更されました。プログラムは、0Aのみ、0Eのみ、または0A 0Eの行末を想定できます。 テストケース: 入力: ......-...-..---.-----.-..-...- .. 出力には以下を含める必要があります。 こんにちは世界 入力: .--..-.-----..-..-----..-.--..--...---..--...-.... ...--....-.-.----...--..---.-....-。 出力には以下を含める必要があります。 プログラミングパズルとコードゴルフ 入力: -.....--....-..-......--....-.---..---...-.----..-.- --..---.--....---...-..-.-......-...---....---..-- ---。 出力には以下を含める必要があります。 速い茶色のキツネが怠zyな犬を飛び越える
24 code-golf  morse 

4
Cで2つの数字を安全に追加します
Cは素敵で安全な高レベルのプログラミング言語であることは誰もが知っています。ただし、コーダーとして次のタスクを設定します。 2つの数値を追加するプログラムを作成します。 入力:スペースで区切られた2つの整数。 出力:入力内の2つの数値の合計。 ひねりは、コードが100%安全でなければならないということです。言い換えれば、入力が何であっても適切に動作する必要があります。入力が実際に2つのスペースで区切られた整数で、両方とも100桁未満の場合、合計を出力する必要があります。それ以外の場合は、エラーメッセージを出力して安全に終了する必要があります。 結局のところどれほど難しいのでしょうか? 一般的な称賛は、他の人の答えを破る病理学的入力ケースに与えられます:) コードは、ubuntuでgcc -Wall -Wextraを使用して警告なしでコンパイルする必要があります。 明確化。 入力は標準入力からです。 水平方向の空白は単一のスペース文字のみです。最初の数字の前に何もなければならず、入力は改行+ EOFまたはEOFのみで終了する必要があります。 Augmented Backus-Naur Formで指定される唯一の有効な入力は次のとおりです。 NONZERODIGIT = "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" POSITIVENUMBER = NONZERODIGIT * 98DIGIT NEGATIVENUMBER = "-" POSITIVENUMBER NUMBER = NEGATIVENUMBER / POSITIVENUMBER …
24 code-golf  c 

30
リストからオックスフォードコンマを使用して単一の文字列を生成する
文字列のリストを取得し、リストから構築された単一の適切に句読点付きの文字列を返し、各要素を引用する、いくつかの巧妙な(簡潔で慣用的な)アプローチは何ですか? 一方、これは私のために来たのGroovyを試して、私あまりにもリテラルが、説明の解決策があるため、 def temp = things.collect({"\'${it}\'"}) switch (things.size()) { case 1: result = temp[0] break case 2: result = temp.join(" and ") break default: result = temp.take(temp.size()-1).join(", ") + ", and " + temp[-1] break } すなわち、['1']得られるはず'1'、['1','2']得られるはず'1 and 2'、と[私は?そこに何をしたか見る] ['1','2','3']得なければなりません'1, 2, and 3'。 Groovyには良い答えがありますが、他の言語で何ができるかを知りたいです。 これらの言語の機能とイディオムを利用するさまざまな言語のコンパクトな巧妙なアプローチは何ですか?

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