개발
[코테] 프로그래머스 뒤에서 5등 위로
woojin06
2025. 4. 10. 10:44
요새 심심해서 개념 정리 다시 할겸 프로그래머스 레벨 0부터 차근차근 다시 풀고있던 중 문제가 발생했다.
바로 https://school.programmers.co.kr/learn/courses/30/lessons/181852
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
해당 문제인데 어디가 막혔냐
function solution(num_list) {
num_list.sort();
return num_list[5:];
}
처음 코드가 이렇게 생겨먹었다. 왜 그랬는진 모르겠는데 파이썬으로 풀면 문제 될 내용이 없는데 나는 JS가 주 언어다.
js에서 이렇게 하니 당연히 오류가 나지 근데 그것도 모르고 5분동안 뭐가 문젠지 멍했다가 고민을 해보니 나는 js 언어로 푸는중이었다.
그렇다면 뭐가 문제인걸까 알아보자.
일단 저 [n : ] 문법은 파이썬이 가지고 있는 문법이다. 그렇기에 해당 내용을 .slice(5) 로 고쳐줬다

이렇게 수정했는데 정렬 값이 다른거였다 코드를 다시 확인하니 js 가 하는 .sort() 는 문자열을 기준으로 한다
쉽게 말해서
[10, 2, 1].sort(); // -> [1, 10, 2] ❌
이렇게 문자를 기준으로 sort 해준다 그래서 .sort((a,b) => a - b)를 해야 숫자를 기준으로 오름차순이다.
해당 문제는 그냥 아침 이슈인가 싶지만 그래도 정리를 한번 해야 다음부턴 안헷갈릴 것 같아서 정리해둔다.
그리하여 최종 수정본 코드가
function solution(num_list) {
return num_list.sort((a,b) => a - b).slice(5);
}
이렇게 정리된다. 다음부턴 이런 실수를 하면 안되겠다.