https://school.programmers.co.kr/learn/courses/30/lessons/42746#qna

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

function solution(numbers) {
   return numbers.filter(n=>n===0).length === numbers.length ? "0" :
     numbers.sort((a,b)=>{
        const order1 = `${b}${a}`
        const order2 = `${a}${b}`
        return order1.localeCompare(order2);
    }).join('');

}

 

 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

 

String.prototype.localeCompare() - JavaScript | MDN

localeCompare() 메서드는 참조 문자열이 정렬 순으로 지정된 문자열 앞 혹은 뒤에 오는지 또는 동일한 문자열인지 나타내는 수치를 반환합니다.

developer.mozilla.org

.localeCompere() 를 사용해 문자열의 순서를 비교해서 해결했다. 

 

테스트케이스 11번만 통과를 못해서 질문창을 읽어보니

11번은 numbers 값으로 0만 들어있는 (e.g [0,0,0,0,0,0,0]) 케이스 라는 것이었다 ㅂㄷㅂㄷ.... 

그래서 배열안에 들어있는 0의개수가 배열의 길이와 동일하면 문자열 0을 리턴하게끔 수정했더니 통과 할 수 있었다. 

 

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/176963

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

function solution(name, yearning, photo) {
    const map = new Map();
    for(let i=0;i<name.length;i++){
        map.set(name[i],yearning[i]);
    }

    var answer = [];
    for(let pdx in photo){
        let sum = 0;
        for(let idx in photo[pdx]){
            if(map.get(photo[pdx][idx]))
                sum+= map.get(photo[pdx][idx]);
        }
        answer.push(sum);
    }
    return answer;
}

해시 사용하니까 너무쉽다 하면서 풀었는데 

다른사람의 풀이 보니까 더 멋지게 푼 분이 있더라 허걱 ;;;

 

 

 

return photo.map((v)=> v.reduce((a, c)=> a += yearning[name.indexOf(c)] ?? 0, 0))

 

이렇게 푸셨음 헐 ......

 

https://school.programmers.co.kr/learn/courses/30/lessons/176963/solution_groups?language=javascript&type=all

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

아직 reduce 쓰는게 어색해서 잘 안 쓰게되는 것 같다 공부가 부족해서 그런거겠지!! 

예제 보면서 공부 하자잣 

 

 

 

+ Recent posts