요새 심심해서 개념 정리 다시 할겸 프로그래머스 레벨 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);
}
이렇게 정리된다. 다음부턴 이런 실수를 하면 안되겠다.
'개발' 카테고리의 다른 글
| [css][sticky] 아니 여백이 안지워진다니까요?? (1) | 2025.07.29 |
|---|---|
| [React] 화살표 함수 제네릭 타입이 안된다!?! (2) | 2025.07.04 |
| [타입스크립트] any와 제네릭: 타입 안정성의 차이점과 올바른 사용법 (0) | 2025.04.07 |
| [CS지식] 메모리 구조 (0) | 2025.03.15 |
| [알고리즘] 프로그래머스 직사각형 별찍기 (0) | 2025.03.12 |