10
5

More than 5 years have passed since last update.

JavaScriptのコーディング面接した際の出題問題(Sort)

Last updated at Posted at 2019-02-27

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 で解いてみた

10
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5