반응형
문제
nums 안에 요소 하나씩 다른 요소들과 비교해서 비교 기준이 되는 인자보다 몇 개의 요소가 작은지 검사해 결괏값을 낸다.
내 현재 풀이
/**
* @param {number[]} nums
* @return {number[]}
*/
var smallerNumbersThanCurrent = function(nums) {
let arr = []
let cnt = 0;
for(let i of nums){
for( let j = 0; j < nums.length; j++ ){
if(i > nums[j]){
cnt++;
}
}
arr.push(cnt)
cnt = 0;
}
return arr
};
되게 단순하게 생각해 풀었다. 인자 하나씩 꺼내서 다음 for문을 통해 하나씩 비교한 후 배열에 담아 리턴했다.
내 예전 풀이
/**
* @param {number[]} nums
* @return {number[]}
*/
var smallerNumbersThanCurrent = function(nums) {
let res = []
for(let i =0; i < nums.length; i++){
let com = nums[i]
let cnt = 0;
for(let j = 0; j < nums.length; j++){
if(com > nums[j]){
cnt++;
}
}
console.log(cnt)
res[i] = cnt;
}
return res;
};
예전에도 똑같이 풀이했다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ다른 방법이 없을까 고민되긴 한다.
다른 사람 풀이
/**
* @param {number[]} nums
* @return {number[]}
*/
const smallerNumbersThanCurrent = nums =>
nums.map(n =>
new Map(
[...nums]
.sort((a, b) => b - a)
.map((val, idx) => [val, nums.length - idx - 1]),
).get(n),
);
Map를 써서 풀이한 게 충격적이다!!! 이렇게 아래 그림처럼 담아진다. 그다음 get를 이용해 value 값만 뽑아냈다.
반응형
'LeetCode' 카테고리의 다른 글
1678. Goal Parser Interpretation (0) | 2022.06.07 |
---|---|
1342. Number of Steps to Reduce a Number to Zero (0) | 2022.06.05 |
1281. Subtract the Product and Sum of Digits of an Integer (0) | 2022.06.02 |
1431. Kids With the Greatest Number of Candies (0) | 2022.05.31 |
771. Jewels and Stones (0) | 2022.05.30 |
댓글