Thief of Wealth

https://programmers.co.kr/learn/courses/30/lessons/12917

 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 �

programmers.co.kr

 

다시 말하지만 sort에서 콜백함수의 결과값은 true, false보다 1,-1이 더 좋다.

 

그리고 배열을 문자열로 바꾸는 것은 join으로 가능하다.

 

function isLowerUpper(c){
    if('a'<=c && c<='z'){
        return "lower";
    }else if('A'<=c && c<='Z'){
        return "Upper";
    }else{
        return "Error";
    }
}
function solution(s) {
    
    let temp = [];
    for(const a of s){
        temp.push(a)
    }
    
    temp.sort( (a,b)=>{
        const a_res = isLowerUpper(a);
        const b_res = isLowerUpper(b);
        if(a_res==="lower" && b_res==="lower"){
            if(a>b) return -1;
            else return 1;
        }else if(a_res==="Upper" && b_res==="Upper"){
            if(a>b) return -1;
            else return 1;
        }else if(a_res==="lower" && b_res==="Upper"){
            return -1;
        }else if(a_res==="Upper" && b_res==="lower"){
            return 1;
        }
    })
    
    return temp.join("");
}
profile on loading

Loading...