インタビュー:フロントナイン
これは、就職の面接の質問をプログラミングすることに触発された一連の課題の最初のものです。
潜在的な将来の上司が座っているオフィスに入ります。「さあ、座って」と彼は言う。あなたは緊張して座って、きびきびとしたプロの服装にしわがないようにします。彼はあなたの教育、以前の仕事の経験などについて多くの質問をします。あなたはほとんど正直にそれらに答え、あなた自身をより良くするためにあちこちに少し装飾を追加します。彼は前かがみになり、再び話し始めます。
「コードゴルフのことを聞いたことがありますか?」はい、あなたはゴルフのコードが好きで、あなたの自由な時間に頻繁にそれをします。「すごい。インタビューの最後の部分は技術的な試験です。一連の問題を解決するためのコードを書く必要があります...」彼はあなたに一枚の紙を渡します。あなたはすぐにそれを見ます。簡単です。なぜ彼はコードゴルフについて尋ねたのですか?
「これらの問題に対する解決策の合計サイズに基づいて採点されます。他のすべての候補者よりも低い得点が得られるなら、仕事はあなたのものです。」ああ。「ゴルフのように、18の問題があり、9の2つのセットに分かれています。お好きな言語を自由に使用して解決してください。聞いたことのあるすべての言語、 「がんばって!」
タスク
タスク1:乗算表
番号を与えられたn
範囲内の正の整数の入力、出力、乗算テーブルとして[1, n]
。n
範囲内になります[1, 12]
。すべての数値は、テーブル内で左揃えにする必要があります。x
左上隅に文字を使用します。
例:
n=4
x 1 2 3 4
1 1 2 3 4
2 2 4 6 8
3 3 6 9 12
4 4 8 12 16
n=10
x 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10
2 2 4 6 8 10 12 14 16 18 20
3 3 6 9 12 15 18 21 24 27 30
4 4 8 12 16 20 24 28 32 36 40
5 5 10 15 20 25 30 35 40 45 50
6 6 12 18 24 30 36 42 48 54 60
7 7 14 21 28 35 42 49 56 63 70
8 8 16 24 32 40 48 56 64 72 80
9 9 18 27 36 45 54 63 72 81 90
10 10 20 30 40 50 60 70 80 90 100
タスク2:順序RMS
ASCII文字列が与えられた場合、ASCII順序の二乗平均平方根を出力します。文字列にNULLバイト(序数0)が含まれることはありません。
例:
Input: The Interview: The Front Nine
Output: 95.08290393488019
Input: `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Output: 91.38101204135423
タスク3:発射体の動き
地上から発射された発射体の水平線との初期速度と角度を考慮して、着陸前に移動する水平距離を出力します。初期速度はメートル/秒で、角度は度で、距離はメートルで示されます。地球の重力(g=9.81 m/s/s
)を想定し、相対論的効果を無視します。この問題のために、地球が平らであると仮定することができます(計算を行うときに地球の曲率を考慮する必要はありません)。与えられた角度はの範囲になります[0, 90]
。回答は、少なくとも小数点以下2桁まで正確である必要があります(端数処理は許可されています)。
例:
velocity=50, angle=45
Result: 254.84 (rounded)
velocity=10, angle=60
Result: 8.82798576742547
タスク4:etaoin shrdlu
null以外の印刷可能なASCII文字の文字列(範囲内の序数[32,127]
)が与えられた場合、文字列を出力します。文字は、頻度で降順にソートされます。同点の場合、ASCIIの順序で昇順で並べます。
例:
Input: "Hello, World!"
Output: "llloo !,HWder"
Input: "Programming Puzzles and Code Golf"
Output: " oooPPaaddeeggllmmnnrrzzCGfisu"
タスク5:フィボナッチインデックス
番号を指定して、それがフィボナッチ数かどうかを判断し、そうであれば、そのインデックス(1から始まる)をシーケンスで出力します。フィボナッチ数でない場合は、0を出力します。1の場合は、シーケンスが2回あり、最も早いオカレンス(インデックス1)を出力します。
例:
Input: 1
Output: 1
Input: 144
Output: 12
Input: 4
Output: 0
タスク6:アナグラム
小文字の英語の文字列([a-z]
)が3つある場合、最初の文字列のすべての文字を使用し、2番目の文字列で始まり、3番目の文字列で終わる文字列を出力します。そのような文字列を構築できない場合は、空の文字列を出力します。入力文字列は常に少なくとも1文字の長さになります。プレフィックス文字列とポストフィックス文字列がソース文字列のすべての文字を一緒に使用する場合、出力文字列の「中間」(プレフィックス文字列とポストフィックス文字列の間)が空になる場合があります。
例:
Input: geobits bi es
Possible output: bigtoes
Input: mariatidaltug digital trauma
Output: digitaltrauma
Input: mego go lf
Output: (empty string)
タスク7:空白を埋める
文字列のリストと充てん文字が与えられた場合、すべての文字列に充てん文字を含む最も長い文字列の長さまでパディングした結果を出力します。ネクタイの。メモリの制約によってのみ制限される、任意の有限長の文字列を含む、任意の有限長のリストを処理できる必要があります。
例:
Input: ["hello","world","this","is","a","test"], 'x'
Output: ["axxxx","isxxx","thisx","testx","hello","world"]
Input: ["I'm","a","lumberjack","and","I'm","okay"], '!'
Output: ["a!!!!!!!!!","I'm!!!!!!!","and!!!!!!!","I'm!!!!!!!","okay!!!!!!","lumberjack"]
タスク8:変更を加える
範囲内[0.01,0.99]
の数値を指定すると、コインの合計数が最小化されるように、この値を表すために使用する4つの標準米国コインのそれぞれの数を出力します。入力は常に小数点以下2桁です。
コイン値リファレンス:
Penny: 0.01, Nickel: 0.05, Dime: 0.10, Quarter: 0.25
例:
Input: 0.75
Output: [0,0,0,3]
Input: 0.23
Output: 3 pennies, 0 nickels, 2 dimes, 0 quarters
タスク9:範囲の結合
範囲を表す整数を含む2タプルの有限リストが与えられた場合、すべての重複または隣接する範囲をマージした結果を出力します。すべての範囲は少なくとも長さ1で、開始値は常に終了値よりも小さくなります。出力の順序は重要ではありません。
例:
Input: (2,3), (4,5), (6,9), (0,7)
Output: (0,9)
Input: (-3,4), (2,5), (-10,-4)
Output (-10,-4), (-3,5)
Input: (2,3), (5,6), (6,8)
Output: (5,8), (2,3)
ルール
- これはcode-golfであるため、最短回答(バイト単位)が優先されます。
- スコアは、すべてのソリューションのバイトカウントの合計になります。
- 標準的な抜け穴は禁止されています。
- 入力および出力は、言語の標準と見なされる方法で実行できます。
- チャレンジごとに完全なプログラムまたは機能を記述し、チャレンジ間で2つを交換することができます。
- すべての課題に同じ言語を使用する必要があります。バージョンの違いが通常、チャレンジの個別のエントリと見なされるほど重要な場合は、全体を通して同じバージョンを使用する必要があります。たとえば、Pythonを使用する場合、すべての課題に対してPython 2またはPython 3を使用する必要があります。
- すべての課題を解決する必要があります。一部の課題のみを解決する回答は、非競争的と見なされます。
- 言語ビルトインまたは標準ライブラリを使用できます。
リーダーボード
この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からリーダーボードを生成します。
回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。
## Language Name, N bytes
N
提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:
## Ruby, <s>104</s> <s>101</s> 96 bytes
ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。
## Perl, 43 + 2 (-p flag) = 45 bytes
言語名をリンクにして、スニペットに表示することもできます。
## [><>](http://esolangs.org/wiki/Fish), 121 bytes