function solution(d, budget) {
let count = 0;
for (let value of d.sort()){
budget -= value
if (budget >= 0){
count ++;
continue
}
break
}
return count
}
다음과 같이 제출을 했더니, 분명 파이썬 그대로 옮겨왔는데도 틀렸다. 의심가는 곳은 딱 한 곳 뿐이었다. 정렬 반환을 조금 다르게 하나? 찾아보았다.
자바스크립트의 sort함수는 기본적으로 배열을 문자열로 간주하고 정렬을 진행한다. 이는 파이썬 배열안에 문자열로 가득찬 것을 정렬할 때를 생각해보면 될 것이다.
이렇게 되면 문제가 [199999999, 9]를 sort하면(디폴트 값은 오름차순), [199999999, 9] 그대로 도출되는 것을 확인 할 수 있다. 그렇기에 앞에 1과 9만 비교하고 9가 크다고 결론짓고 넘어간다.
=> 그렇기에 해결방안 : sort(()=>a-b) // a-b 오름차순, b-a 내림차순
'언어 > Javascript' 카테고리의 다른 글
Array.prototype.join() (0) | 2022.08.12 |
---|---|
prototype.includes(), in 연산자, hasOwnProperty(), Array.prototype.some (0) | 2022.08.12 |
Objects.entries(arr) (0) | 2022.08.10 |
객체 순회 (0) | 2022.08.08 |
map() vs foreach() (0) | 2022.08.07 |