[プログラマー]K番目の数字(JavaScript)
7574 ワード
初めての試み
function process(array, command) {
const start = command[0] - 1;
const end = command[1];
const index = command[2] - 1;
return array.slice(start, end).sort()[index];
}
function solution(array, commands) {
return commands.map((command) => process(array, command));
}
commands
要素の回転毎にコマンドを実行するprocess
関数を定義した後、commands.map()
を使用した.「しかし、テストケース2ではいつもエラーが発生しているので、別の方法を試してみました.」
二次試行
function solution(array, commands) {
return commands.map(([start, end, index]) => (
array.slice(start-1, end).sort()[index - 1]
))
}
きれいに直したと思ったが、テストケース2で失敗した.調べてみると、並んでいる数字が文字として認識されていて、間違いがあるかもしれません.
修正されたコード
function solution(array, commands) {
return commands.map(([start, end, index]) => (
array.slice(start-1, end).sort((a, b) => a - b)[index - 1]
))
}
配列時にはcompareFunction
をパラメータとして渡してこそ、このような誤りを防ぐことができると言われています.参考MDN!
問題のソース
https://programmers.co.kr/learn/courses/30/lessons/42748?language=javascript
リファレンス
https://velog.io/@qmasem/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-K%EB%B2%88%EC%A7%B8%EC%88%98-JavaScript
https://okky.kr/article/569591(←ここのコメントでコンソールを撮るのは助かります)
Reference
この問題について([プログラマー]K番目の数字(JavaScript)), 我々は、より多くの情報をここで見つけました https://velog.io/@9ummy/프로그래머스-K번째-수-JavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol