문제링크
문제정보
간단히 해석하면 이렇습니다.
숫자로 이루어진 배열 nums가 주어지고요.
배열 nums[i]각각에 대하여 nums[i]보다 값이 작은 배열 요소의 총 개수를 찾습니다.
nums = [8,1,2,2,3] / output : [4,0,1,1,3]
nums[0]=8의 경우 이보다 작은 네 개의 숫자가 있습니다(1, 2, 2 3).
nums[1]=1의 경우 그보다 작은 숫자는 존재하지 않습니다.
nums[2]=2의 경우 그보다 작은 숫자가 하나 있습니다(1).
nums[3]=2의 경우 그보다 작은 숫자가 하나 있습니다(1).
nums[4]=3의 경우 그것보다 작은 세 개의 숫자(1, 2, 2)가 있습니다.
이런식인거죠!!
나의 풀이
var smallerNumbersThanCurrent = function(nums) {
let answertemp = []
for(i=0;i<nums.length;i++) {
let counting = 0
for(j=0; j<nums.length; j++) {
if(nums[i] > nums[j]) {
counting += 1
}
}
answertemp.push(counting)
}
return answertemp
};
2중 for문을 이용해 문제를 풀었습니다.
구조 자체는 간단한데 변수의 초기화 부분을 신경 써주는게 중요한 것 같아요
i for문이 시작할때마다 counting 변수를 0으로 초기화시켜줘야
요소 각각의 값을 구할 수 있을 것입니다.
i for문이 시작할때마다 0으로 초기화시키고
nums[i]가 nums[j]보다 크다면 counting을 1씩 증가시켜준뒤
j for문이 다돌면 answertemp에 push해주고
다시 counting을 0으로 초기화시키고 다음 요소들을 체크해나가는 코드입니다.
반응형
'leetcode' 카테고리의 다른 글
46. Permutation (0) | 2022.11.18 |
---|---|
448. Find All Numbers Disappeared in an Array (0) | 2022.11.17 |
39. Combination Sum javascript leetcode (0) | 2022.11.16 |
7. Reverse Integer Javascript Leetcode (0) | 2022.11.14 |
1678. Goal Parser Interpretation leetcode javascript (0) | 2022.11.14 |