[プログラマレベル2]ファイル名ソートKACA 2018
5520 ワード
質問する
https://programmers.co.kr/learn/courses/30/lessons/17686
問題を解く
コード#コード#
function solution(files) {
return files.sort((a, b) => {
const headerA=a.match(/^\D+/)[0].toLowerCase();
const headerB=b.match(/^\D+/)[0].toLowerCase();
if(headerA<headerB){
return -1;
}
if(headerA>headerB){
return 1;
}
const numberA=a.match(/\d+/)[0].replace(/^0+/, '');
const numberB=b.match(/\d+/)[0].replace(/^0+/, '');
return numberA-numberB;
})
}
これは正規表現を用いた解答である.二分の解参照.すごいソートですね...ここには理解できないところがありますが、なぜmatchに[0]を付けたのか理解できません.
一致する場合のみ、戻り値は配列として表示されます.したがって、正しいインデックスを指定する必要があります.


参考資料
https://tech.kakao.com/2017/11/14/kakao-blind-recruitment-round-3/
https://after-newmoon.tistory.com/82
Reference
この問題について([プログラマレベル2]ファイル名ソートKACA 2018), 我々は、より多くの情報をここで見つけました https://velog.io/@rladpwl0512/프로그래머스-level2-파일명-정렬카카오-2018テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol