프로그래머스 #JavaScript - 가장 큰 수

SSO·2020년 2월 3일
0

프로그래머스 Lv2

목록 보기
14/46
post-custom-banner

문제

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

풀이

Refer to someone's...

function solution(numbers) {
    
    var answer = numbers.map(c=> c.toString()).
    				sort((a,b) => (b+a) - (a+b)).join('');
    
    return answer[0]==='0'? '0' : answer;
}

My...

// 조건
// 맨앞 0 안됨
// 각 숫자의 첫글자가 가장 큰 수가 맨 앞
// 첫글자가 같으면 그 다음글자 순으로 비교
// 자리수가 다른 경우 (없는 수는 바로 앞글자와 동일하다고 판단하기)
// => 결국 자리수로 정렬하는 방법찾기!!=> 기수정렬(radix sort) => queue로 해결
    
// var queue = [[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]];
// queue에 넣기
    var queue = [[],[],[],[],[],[],[],[],[],[]];
    for(var i=0; i<numbers.length; i++){
        var converted = numbers[i].toString();
        var index = parseInt(converted[0])-1;
        queue[index].push(numbers[i]);
    }

// 여러개 있는 경우 다음 자리수로 다시 정렬 ->??
    for(var j=0; j<numbers.length; j++){
        if(queue[j].length >1)
    }
    

더 생각해보기

처음에 그냥 sort함수로 풀려다가 이론 찾아보고(기수정렬) 오히려 복잡하게 풀기 시작...
쉬운방식으로 접근하자! -> 정렬=> 전체가 아니라 부분으로 접근해보기
정렬 - array.sort() method의 활용

참고사항

#정렬
#Queue
#Radix sort(기수정렬)

profile
happy
post-custom-banner

0개의 댓글