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

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

7
メルカレンダーに日付を出力する
メルカレンダーはカルディアの架空の世界で使用されています。あなたの目標は、日付をメルカレンダーに変換することです。 このカレンダーには、それぞれ28日間の13か月と、前月のあと1日または2日の余分な日があります。4で割り切れても100では割り切れない年、または400で割り切れる年には366日があり、その他の年には365日があります(つまり、うるう年の規則ですが、メルカレンダーには年があります)。 月と日の名前の省略形を使用する必要があります。 月: dia vio lis gil fulフルメルラルザンパルmik fav ruj 日: dia vio lis gil ful dy mel ral zan pal mik fav ruj ser rav tan lin rez jil din ket len lax nen pin mat kun mir 各月の外の追加日には、月名myuxet(ここでは省略形なし)があり、曜日名はそれぞれaxetおよびteemsです。 0 dia dia 1988/11/30です。 入力日付を文字列または(年、月、日)タプルとして取得できます。または、関数の場合、パラメーターを標準ライブラリの日付タイプにすることができます。出力はスペースで区切られた文字列でなければなりません。 テストケース 1776-07-04 => -213 …
8 code-golf  date 

2
このコンテナはこれだけの液体を保持できますか?
このコンテナはこれだけの液体を保持できますか? チャレンジの概要 ご存知のように、液体の形状は不定であり、体積は一定です。そのため、それらは常にコンテナの形をしています。ただし、コンテナを埋めるために拡張することはできません。 今日のあなたの仕事は、特定の量の液体(L提案に従って、パーツの体積を表す特定の数の文字または数字で表される)が特定のサイズのコンテナ(マトリックスで表される)に収まるかどうかを判断することですC文字)の中にスペース(スペース文字で表される)がいくらか含まれています。コンテナは常にC、周囲全体に文字を持ちます。 プログラムは、液体がコンテナに収まるかどうかに基づいて、真偽値を返します。残りのスペースから(スペースまたは2つの改行文字による)。 テストケース LLL L ----- True CCCCC C CC C CC CCCCC LLL LL ------ True CCCCCC C C C C CCC CCCCCC L L LLL ----- False (Not enough space) CCCCC CCCCC C CC CCCCC LL ------ False (Spaces are not connected but liquid is) …

1
閉じたポリゴンを数える
入力: NxMのみ印刷可能なASCII(Unicodeの範囲を含むグリッドまたは複数行の文字列(またはその他の妥当入力フォーマット)[32,126])。 出力: 2つの特別なルールを使用して、検索できる同じ文字の閉じたポリゴンの数: スペースはワイルドカードであり、任意の文字に(複数回)使用できます o、O、および0閉じた多角形そのものとしてカウントされ チャレンジルール: 同じ文字(またはスペース)間の(対)対角線接続が閉じたポリゴンを形成するために含まれています。 他の文字(ワイルドカードスペースを除く)を超えることはできません。(つまり、以下の最初のテストケース/例では、次の2つの三角形を形成することができないA上行くことによってさんをx斜めに閉じた多角形のために使用されるすべての文字が(水平方向、垂直方向に接続する必要がありますので。)、および/または(反) )。 ポリゴンは、(単一文字を除く少なくとも3つの文字ですo、O、0)。 隣接する文字の線は閉じた多角形ではありません。 ワイルドカードスペースを除き、同じ文字を複数のポリゴンに使用することはできません。 ワイルドカードスペースはとしてカウントすることができないo、Oまたは0。 3つ以上のスペースだけでは、閉じたポリゴンを形成できません。常に少なくとも1つの非スペース(およびo/ O/ 以外0)文字が必要です。 入力は適切な形式にすることができます。文字マトリックス、改行区切り文字列、文字列配列、整数幅を追加した文字配列などを使用できます。 入力は常にN x Mの長方形(または正方形)になるため、奇妙な入力形状はありません 同じ文字を複数回使用することはできず、閉じたポリゴンをできるだけ多くしたいので、1つの大きなポリゴンの代わりに複数の文字を使用して2つ(またはそれ以上)の閉じたポリゴンを形成することは、当然のことながらカウントの目的です(これもなぜ、閉じた多角形が形成されることでo、Oまたは0それらは、すでに個別のポリゴンを閉じているので)、カウントされません。 もちろん、大文字と小文字は個別の文字として数えられます。 一般的なルール: これはcode-golfなので、バイト単位の最短の回答が優先されます。 コードゴルフ言語が非コードゴルフ言語で回答を投稿することを思いとどまらせないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 デフォルトのI / Oルールを使用した回答には標準のルールが適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターで使用し、戻り値の型の完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテスト(TIOなど)のリンクを追加してください。 また、回答の説明を追加することを強くお勧めします。 例/テストケース: 入力: AAAw AxA4 'AoQ 出力:2これらのポリゴンは形成できるため、 入力: 1822uaslkoo 12*2sl ljoo a* 0a91)j$* ()*#J9dddj* *Q#ID dJj!" *UJD …

10
メガチェスボード
正方形のチェス盤を作成したいとします。隣接するタイルは、標準のチェス盤のように黒と白を交互に並べる必要があり、左下隅は黒または白のどちらでもかまいません。 プログラムは、黒のタイルの数と白のタイルの数の2つの正の整数を受け取ります。これらは常に1024未満になります。すべてのタイルを使用する必要はありません。 指定された量のタイルを使用して構築できるチェス盤パターンの最大の辺の長さを出力します。 テストケース: 12, 15 -> 5 8, 8 -> 4 4, 0 -> 1
8 code-golf 

14
K 5の次の数
チャレンジ: プログラムは2つの整数nをk入力として受け取り、n少なくともk数字の出現を含む(ただし等しくない)より大きい最小の整数を出力します5。 あなたは想定できる1 ≤ k ≤ 15と1 ≤ n < 10**15。 これは制限時間の課題です。プログラムは、すべてのテストケースでTIOで実行し、合計10秒以内に完了する必要があります。 一般的なルール: これはcode-golfなので、バイト単位の最も短い答えが優先されます。 コードゴルフ言語が非コードゴルフ言語で回答を投稿することを思いとどまらせないでください。どのプログラミング言語についても、できるだけ短い答えを考えてください。 デフォルトのI / Oルールを使用した回答には標準のルールが適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターで使用し、戻り値の型の完全なプログラムを使用できます。あなたの電話。関数パラメーターはどちらの順序でも使用できますが、回答で指定してください。 デフォルトの抜け穴は禁止されています。 コードのテストを含むリンク(つまりTIO)を追加する必要があります。 回答ヘッダーには、スコアがバイト単位で表示されますが、TIOのすべてのテストケースに要した合計時間も表示されます。 言語がTIOにない場合、コードはマシン上で10秒よりはるかに短い時間で終了するはずなので、適切なコンピュータで十分に高速であると確信できます。 回答の説明を追加することを強くお勧めします。 テストケース: (n, k) -> output (53, 2) -> 55 (55, 1) -> 56 (65, 1) -> 75 (99, 1) -> 105 (555, 3) -> 1555 …

9
シャンテダンスマッチング
で元Shantaeゲーム、変換を使用して、踊りながら、所定のシーケンスを完了する場合は、対応する形式に変換(またはテレポートまたは治癒)であろうD-パッド、A、及びBを使用して時間内に入力し、使用していることが踊りれます。あなたの仕事は、入力が与えられたときに対応する効果を出力することです。キャッチは、入力の前後で無関係なダンスの動きが発生する可能性があり、入力にダンスさえない場合があることです。 ダンス UDLRABダンスの動きに使用: モンキー: DR 象: DL クモ: DA ハーピー: DB Tinkerbat: DUU 治癒: DUA スカットルタウン: DULR ウォータータウン: DURLAB オアシスタウン: DURRBA ゾンビキャラバン: DULLBA バンディットタウン: DUBLBR コーディング 入力:一連のダンスの動き。これには、上、下、左、右、B、A、および待機の値を含めることができます。便利なエンコーディングを使用します。 出力:シーケンスで最初に一致するダンスに対応する値、または一致しない場合は異なる値。これは便利な方法でエンコードできます。 例 .待機に使用: DR →サル UUU.DLUAB →象 L.DDBALL →ハーピー LRLRDURURLAB→ 一致しません DUBLBR →バンディットタウン DURLBA→ 一致しません DDUDR →サル RLAB→ 一致しません .DUUBBB →ティンカーバット DADRDL →クモ …

2
ペグソリティアを遊ぼう
ペグソリティアは、通常一人でプレイされる人気のゲームです。ゲームはいくつかのペグとグリッドに分割されたボードで構成されます。通常、ボードは長方形ではありませんが、この課題ではこれを想定します。 有効な各移動により、1つのペグを削除することができ、目標は、1つのペグが残るような方法でプレイすることです。現在、有効な移動は単一の方向(北、東、南、または東)で、削除可能な1つのペグを飛び越える必要があります。 例 させる.ペグあり、以下の移動が移動します空のボード上のスペースや数字も1右と削除するには1を2ボードから: ..... ..... .12.. -> ...1. ..... ..... この動きは、常に単一のペグを飛び越えるする必要がありますので、次のようになりません有効。 ...... ...... .123.. -> ....1. ...... ...... それぞれが1移動した後の有効な構成をいくつか次に示します。 ...1... ...1... ..71... ..71... .2.34.5 ---> .24...5 ---> .2....5 ---> ......5 .678... (4W) .678... (7N) .6.8... (2S) ...8... ....... ....... ....... .2..... チャレンジ 初期のボード構成とその他の構成を前提として、上記のようにペグを連続的に移動することで他の構成に到達できるかどうかを出力します。 ルール 入力は、n × mん×メートルn \times mマトリックス/リストのリスト/ …

1
完全モジュラーC:グレーディング
あなたは、Cプログラミング言語を教えるコンピューターサイエンスの教授です。学生に伝えたい原則の1つはモジュール性です。残念ながら、過去のクラスはメッセージを受信しない傾向があり、プログラム全体を使用して課題を提出していましたmain()。したがって、この学期では、学生を採点するための厳格なモジュール化ガイドラインを発行しました。 Cの文法のサブセットと「整形式」の翻訳単位の規則を以下に定義します。これらの規則に従うコードは、キーワードである識別子が使用されない限り、有効なC89である必要があります。 仕事 Cコードを含むとされる文字列を入力として受け取ります。この文字列には、スペース、改行、および文字のみが含まれていると想定できますabcdefghijklmnopqrstuvwxyz123456789(){},+-*/%;=。 コードは、次のルーブリックに従って、学生の課題が受け取るポイント数を出力する必要があります。 translation-unit文法により、入力は無効です:0ポイント 入力は文法に従いますが、以下のルールに従って「整形式」ではありません:1ポイント 入力は整形式の翻訳単位ですが、完全にモジュール化されていません:2ポイント 入力は完全にモジュール化された整形式の翻訳単位です:3ポイント トークンの定義 identifier:1つ以上の英小文字のシーケンス。識別子がC89予約語1の場合、結果が予約語を無視していたであろうものの代わりに、オプションで0を返すことができます。予約語の識別子としての使用を検出することに一貫性がある必要はありません。場合によってはフラグを立てて、他のインスタンスに渡すこともできます。 integer-literal:1桁以上の数字1から9のシーケンス(文字0が入力に表示されないことが保証されていることを思い出してください) 他の有効なトークンは文法で文字通り定義されています。 文字が空白でない場合に限り、文字はトークンに属している必要があります。 2つの連続した英数字は、同じトークンの一部である必要があります。 EBNF文法 var-expr = identifier literal-expr = integer-literal binary-op = "+" | "-" | "*" | "/" | "%" binary-expr = expr binary-op expr paren-expr = "(" expr ")" call-expr = identifier "(" [ expr ( …
8 code-golf  parsing  c 

7
最長降下の長さ
あなたの仕事は、整数の高さのグリッドとして表される「山」を下りる最長の降下の長さを決定することです。「降下」とは、開始セルから、厳密に減少する高さ(つまり、対角線ではなく、同じ高さではない)の直交する隣接セルへのパスです。たとえば、5-4-3-1からは移動できますが、5-5-4-3-3-2-1からは移動できません。このパスの長さは、開始セルから終了セルまでのセルの移動回数です。したがって、5-4-3-1は長さ3です。 入力として長方形のグリッドを受け取り、最長降下を示す整数を出力する必要があります。 例 1 2 3 2 2 3 4 5 5 5 3 4 6 7 4 3 3 5 6 2 1 1 2 3 1 この山を下りる最長の下りの長さは5です。最長の経路は7から始まり、左、上、左、上、そして左に移動します(7-6-5-4-2-1)。このパスには5つの動きがあるため、パスの長さは5です。 彼らはすべて同じ数かもしれません。 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …
8 code-golf  grid 

11
ピクセルの色
画面上の特定のピクセルのRGBカラーを印刷するプログラムを記述します。 プログラムはstdinから行をの形式x,yで読み取る必要があります。ここで、xとyは符号なし整数です。ピクセル(0,0)は、画面の左上のピクセルです。 次に、プログラムは、RRR,GGG,BBB(x、y)のピクセルの色を表す形式で行をstdoutに出力します。 RRR、GGG、及びBBB0と1の間の浮動小数点数でなければならないOR範囲内の整数[0、255]。たとえば、先行ゼロは重要ではありません。両方074と74は許容されます。 未定義の動作 次の条件で、プログラムが未定義の動作(クラッシュ、不正な出力など)を示すことは問題ありません。 ユーザーが文字列、符号付き整数、浮動小数点数、またはその他の無効なデータ型を入力した ユーザー入力が形式ではありません x,y 指定されたピクセルは画面外です ノート: プログラムは、指定された座標のピクセルを変更できません。 複数のモニターがある場合、プログラムが実行されるたびに同じモニターが使用される限り、ピクセルがオンになっているモニターは問題ではありません。 バイト数が最も少ない答えが優先されます。

8
S&P500インデックスファンドに投資した最適な期間を見つける
1928年から2017年までの各暦年の架空のS&P 500株価指数ファンドの年次リターンを乗数で表したものです。したがって、1928年に「インデックスは37.88%上昇した」と言うかもしれませんが、ここでは1.3788で表しています。 1.3788, 0.8809, 0.7152, 0.5293, 0.8485, 1.4659, 0.9406, 1.4137, 1.2792, 0.6141, 1.2521, 0.9455, 0.8471, 0.8214, 1.1243, 1.1945, 1.138, 1.3072, 0.8813, 1, 0.9935, 1.1026, 1.2178, 1.1646, 1.1178, 0.9338, 1.4502, 1.264, 1.0262, 0.8569, 1.3806, 1.0848, 0.9703, 1.2313, 0.8819, 1.1889, 1.1297, 1.0906, 0.8691, 1.2009, 1.0766, 0.8864, 1.001, 1.1079, 1.1563, 0.8263, 0.7028, 1.3155, …
8 code-golf 

2
この識別子を提案する必要がありますか?
前書き Android Studioやその他のIDEには、効率的なコード挿入を支援するためのコード補完があります(特に、クラスまたはメソッドの名前が冗長である場合)。以下の画像のようになります。 提案するクラス、メソッド、変数を決定するためにIDE間で使用されるロジックは少し異なりますが、それ以外は一般的です。各単語の最初の文字を入力すると、それらの最初の文字と一致する識別子が提案されます。 チャレンジ この課題では、2つの文字列、つまりinputおよびを受け取るプログラムまたは関数を記述してidentifier、identifier一致しinputます。 分割 identifier言葉にます: 小文字の後に大文字("SplitHere" -> "Split", "Here")。 大文字の後に大文字と小文字("SPLITHere" -> "SPLIT", "Here")、または 数字またはアンダースコア_("SPLIT_HERE" -> "SPLIT", "HERE")があります。 これでもまだ十分に明確でない場合は、分割する条件を表す正規表現を次に示します(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|[_0-9]。ここにいくつかのサンプルがあります: theWord_Example、3つのワード(ここでthe、Word、Example)を求めることができます。 THEWORD2EXAMPLE、ここでは2つの単語(THEWORD、EXAMPLE)しか見つかりません(THEWORDは一連の大文字なのでEXAMPLE)。 THEWordEXAMPLE3、ここで3つのワードが(THE、Word、Example)を求めることができる(Wordここでは別個のワードであると考えられます)。 THEWORDEXAMPLEFOUR、1語のみ(THEWORDEXAMPLEFOUR)が見つかります(一連の大文字全体)。 この目的のために、ここでは簡略化されたバージョンを使用します。実際には、ロジックははるかに複雑です。このバージョンでは、2つのルールしかありません。 がinput小文字のみで構成されidentifierてinputいる場合、は、input部分文字列に分割されている場合にのみ一致します。各部分文字列についてidentifier、その部分文字列で始まる単語がその正確な順序で存在します。 入力例: sbo Truthy例:、、(UPDATE)SQLiteBindOrColumnIndexOutOfRangeExceptionSparseBooleanArray StringIndexOutOfBoundException 偽の場合:(SeekBar欠落o)、(単語の先頭にない)StatusBarNotificationo input大文字が含まれている場合は、inputルール1を適用するときに、各大文字の前にを分割する必要があります。 入力例: sbO 真実のケース: SQLiteBindOrColumnIndexOutOfRangeException Falsy例:(単語の先頭に指定する必要があります)、 (間違った順序)SparseBooleanArrayOStringIndexOutOfBoundException I / O 入力:2つの文字列のための1 inputのためにと、1 identifier。あなたはとることのできる正規表現[A-Za-z]+マッチinputと正規表現[A-Za-z0-9_]の一致identifier。 出力:真または偽の値の1つ。どの値を真実として何を返すかを選択できますが、選択はすべてのケースで一貫している必要があります。あなたが返すことができる。例えば1/0、true/false、π/eまたは何が、彼らはすべてのケースで同じ滞在する必要があります。 テストケース 各行は、2つの文字列、つまりinputおよびidentifierそれぞれで構成されています。 真実のケース: "sbo" …

21
Unixタイムスタンプから日時文字列
UNIXタイムスタンプを入力として、日時文字列を次のような形式で指定します: "YYMMDD.HHmm" ルール 入力は、ミリ秒精度のUNIXエポック時間(1970年1月1日00:00:00.000 UTCからのミリ秒)の数値(整数)です。 2の代わりに1文字の場合、値にはゼロを埋め込む必要があります(例:「DD」の場合、「1」は受け入れられませんが、「01」は受け入れられません)。 出力は単一の文字列でなければなりません。配列はありません。 うるう秒の処理は重要ではありません。 最短の勝利。 幸運を! 例 Input: 1547233866744 Output: 190111.1911
8 code-golf  date 

3
RSAキーペアを生成する
正の整数N&gt; = 4N&gt; =4N >= 4を指定すると、キーの長さがNNNビットのRSAキーペア(秘密キーと公開キーの両方)を出力します。 RSA鍵生成アルゴリズムは次のとおりです。 NNNビットのセミプライムんんn選択します。素因数ましょうんんnあることpppとqqq。 λ (n )= L CM(p − 1 、q− 1 )λ(ん)=LCM(p−1、q−1)\lambda(n) = LCM(p-1, q-1)計算します。 1 &lt; e &lt; λ (n )およびG C D (e 、λ (n ))= 1となるような整数eee選択します。1 &lt; e &lt; λ (n )1&lt;e&lt;λ(ん)1 < e < \lambda(n)G CD (e 、λ (n ))= …

2
日付はアルファベット順ですか?
YYYY-MM-DD入力として日付を(形式の文字列として)受け入れ、その日付が「アルファベット順」の場合は真の値を返し、そうでない場合は偽の値を返す関数またはプログラムを記述します。 アルファベット順の日付とは、文字列として表現した場合(特にM-D-Y順で検討した場合)、月、日、年がアルファベット順の日付です。たとえば、2018年9月26日はアルファベット順の日付です。 September 26th 2018 -&gt; September twenty-sixth two thousand eighteen September Twenty-sixth Two thousand eighteen この課題を考える別の方法:「特定の日付の要素は字句的にソートされていますか?」 ノート: 2018は「2千18」として表され、「二十八」や「二0八」ではありません。別の例として、1456年は「1万56」ではなく、「1 456」と表されます。 26日は「twenty-six」ではなく「twenty-sixth」として表されます。 日付の各要素は、全体として考慮されます。これが、18の「e」が2の「t」の前に来ても、2018が自動的に失敗しない理由です。 次の日付はアルファベット順ではありません。 2018年9月2日(「2番目」は「9月」より前にソートする必要があります) 4000年4月30日(「4000」は「30番目」より先にソートする必要があります) 追加ルール: のような形式の文字列として日付を受け取りYYYY-MM-DDます。年は常に4桁で、月と日は常にそれぞれ2桁です。ゼロパディングは文字列変換では表されません(たとえば、 '2000-01-01'は予想どおり1月の最初の2000です)。 日付は常に有効(2月30日なし、Smarch 1日なし)であり、年の値は正(BC日付なし)であると想定できますが、日付は遠い(2年目では9千...")。 真偽値または偽値を返す必要があります。必ずしもブール値Trueまたはを返す必要はありませんFalse。あなたはJavaScriptでこれを実行して返すようにしたい場合'0'と0、それは大丈夫です。もちろん、ブール値を返したい場合は自由にしてください。 標準の抜け穴は禁止されています。 これは code-golf アルファベット順の日付のその他の例 2066-01-02(1月第2、2万66) 1000-04-08(4月8日、1000) 6000-08-01(8月最初、6000) アルファベット以外の日付のその他の例 1066-01-02(1月2日、1万66) 1000-04-07(4月7日、1000) 8000-08-01(8月最初、8000)
8 code-golf 

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