코딩테스트
[프로그래머스/javascript] 파일명 정렬 (정규식 공부하고 다시풀기,sort 객체 사용법 공부)
_서리__
2023. 3. 4. 16:41
function solution(files) {
let numbers = {"0":true,"1":true,"2":true,"3":true,"4":true,"5":true,"6":true,"7":true,"8":true,"9":true}
let obj = {};
for(let i=0;i<files.length;i++){
obj[files[i]]={};
for(let j=0;j<files[i].length;j++){
if(!obj[files[i]]["num"]&&!numbers[files[i][j]]){
if(obj[files[i]]["str"]===undefined){
obj[files[i]]["str"]=files[i][j]
}else{
obj[files[i]]["str"]+=files[i][j]
}
}
else if(numbers[files[i][j]]&&!obj[files[i]]["etc"]){
if(obj[files[i]]["num"]===undefined){
obj[files[i]]["num"] = files[i][j]
}else{
obj[files[i]]["num"] += files[i][j]
}
}else if(obj[files[i]]["num"]&&!numbers[files[i][j]]){
obj[files[i]]["etc"] = true;
}
}
}
let objArr = [];
let answer = [];
for(let key in obj){
obj[key]["name"] = key
obj[key]["str"] = obj[key]["str"].toLowerCase();
obj[key]["num"] = Number(obj[key]["num"])
objArr.push(obj[key])
}
objArr.sort((a,b)=>{
return a.num<b.num?-1:a.num>b.num?1:0
})
objArr.sort((a,b)=>{
return a.str < b.str ?-1:a.str>b.str?1:0
})
answer= objArr.map((el)=>{
return el.name
})
/* 이름순으로 정렬 #오름차순 */
// student.sort(function(a, b) {
// return a.name < b.name ? -1 : a.name > b.name ? 1 : 0; // 광희, 명수, 재석, 형돈
// });
return answer;
}