JavaScriptのコーディング面談で下記のような問題がでました。
緊張すると頭が真っ白になって、実装できなかったです。
帰りの電車で考えたらあっさりできました。。
##問題
時間は5〜10分ぐらいです。
const data = `pineapple,160
apple,80
watermelon,160
grape,160
melon,80
mango,170
banana,80
strawberry,170
peach,160
orange,170
kiwi,80
`
// printSortedDataに処理を記載して、shoud print以下の内容が表示されるようにする
// 要件はdataの金額でソートする。同一金額はdataの記載順で表示する。
// dataは改行区切りの文字列である
const printSortedData = (items) => {
}
printSortedData(data)
// should print
// apple,80
// melon,80
// banana,80
// kiwi,80
// pineapple,160
// watermelon,160
// grape,160
// peach,160
// mango,170
// strawberry,170
// orange,170
##実装例
もっと良い方法や書き方があれば、コメントや編集リクエストを頂けると幸いです。
paizaさんのオンラインエディタとかですぐ確認できて便利でした。
https://paiza.io/ja/projects/new
実装例
const printSortedData = items => {
const array_data = items.split("\n").slice(0, -1);
const sort_data = array_data.slice().sort(function(a, b) {
const a_price = Number(a.split(",")[1]);
const b_price = Number(b.split(",")[1]);
if (a_price < b_price) return -1;
if (a_price > b_price) return 1;
return 0;
});
// console.log(array_data)
// console.log(sort_data)
result = sort_data.join("\n");
console.log(result);
};
##所感
初めてのコーディング面談でしたが、日頃から手を動かしてプログラミングしているかが重要であると感じました。
悔しいので、アルゴリズム問題をちょくちょく解いていこうと思います。
追記
つとむ( @TsutomuNakamura )さんがbashで書いてくれました!!
bashだと一行で書けるらしいです。スゴイです。
なおとさんの「コーディング面接した際の出題問題(Sort)」をbash で解いてみた