본문 바로가기
반응형

JS18

1281. Subtract the Product and Sum of Digits of an Integer 문제 n의 요소를 하나씩 분리 후 곱한 결과와 더하기 한 결괏값을 빼기 후 그 값을 리턴하는 문제다. 내 현재 풀이 /** * @param {number} n * @return {number} */ var subtractProductAndSum = function(n) { n = n.toString(); n = n.split(''); let sum = n.reduce((a,c)=> a+Number(c),0) let product = n.reduce((a,c)=> a * Number(c),1) console.log(sum) return product - sum }; n이 처음에 int 형여서 split 함수를 사용하기 위해서 string 형으로 변환을 했다. 그다음 split를 사용해서 배열로 변환 후 r.. 2022. 6. 2.
1431. Kids With the Greatest Number of Candies 문제 문제 설명 extraCandies와 candies의 요소를 하나씩 더한 후 candies의 가장 큰 숫자보다 크거나 같으면 true가 반환이고 작으면 false 반환이다. 내 현재 풀이 /** * @param {number[]} candies * @param {number} extraCandies * @return {boolean[]} */ var kidsWithCandies = function(candies, extraCandies) { let max = Math.max(...candies) console.log('max',max) const arr = candies.map(data=> data + extraCandies >= max ? true : false) return arr }; map 함.. 2022. 5. 31.
771. Jewels and Stones 문제 문제 설명 jewls가 char가 stones에 몇 개가 있는지 구하는 문제다. 내 현재 풀이 /** * @param {string} jewels * @param {string} stones * @return {number} */ var numJewelsInStones = function(jewels, stones) { let sum = 0; let res = {} for(let i of jewels){ for(let j of stones){ if( i === j){ if(res[i]){ res[i]+=1; }else{ res[i]=1; } } } } for(let i in res){ sum+=res[i] } return sum }; 문제를 보자마자 객체 형태로 담아서 풀어야겠다고 생각을 했다. 그.. 2022. 5. 30.
1512. Number of Good Pairs 문제 문제 설명 nums 배열의 요소들이 인덱스 번호 0번부터 끝까지 검사하면서 같은 숫자가 몇 개인지 구한 다음 결과 값으로 돌려주는 거다. 내 현재 풀이 /** * @param {number[]} nums * @return {number} */ var numIdenticalPairs = function(nums) { let cnt = 0 for(let i in nums){ i = Number(i); for(let j = i+1; j < nums.length; j++){ nums[i] === nums[j] && cnt++; } } return cnt; }; for문을 두번 돌려 정답을 구했고, 중간에 Number 함수를 쓴 이유는 0번째 인덱스일 때 01로 결과가 나와서 i를 숫자로 변환해주고 넘겨주었.. 2022. 5. 28.
1672. Richest Customer Wealth 문제 문제설명 2차원 배열 문제이다. 배열 안에 배열이 있는데, 배열안에 있는 수을 더해서 가장 큰 수를 리턴하는 문제이다. 나의 현재 풀이 /** * @param {number[][]} accounts * @return {number} */ var maximumWealth = function(accounts) { let arr = []; for(let i of accounts){ arr.push(i.reduce((a,c)=> a+c)) } return Math.max(...arr) }; 수를 더한 결과를 담는 arr 배열을 생성하고, for문을 통해 인자를 하나씩 꺼낸 다음 reduce 함수를 이용해서 다 더한 다음에 push를 통해 배열에 담았다. 그리고 리턴은 max 함수를 이용해 리턴했다. 나의 .. 2022. 5. 26.
1480. Running Sum of 1d Array 3번째로 풀이 했던 문제다 ㅋㅋ 문제 설명 nums 인자들은 차례 차례 하나씩 플러스 하면서, 플러스 한 결과 한 값을 결과 배열에 하나씩 담아주면 된다. 어떻게 보면 피보나치 수열과 거의 동일하다고 생각이 된다. 기억이 희미하지만, 문제푸는 데 이때는 거의 40분씩 걸렸으니까 쉽지 않게 풀었을 것 같다. 내 예전 풀이 /** * @param {number[]} nums * @return {number[]} */ var runningSum = function(nums) { let sum = 0; let res = []; for(let i = 0; i < nums.length; i++){ sum += nums[i]; res[i] = sum; } return res; }; 결과 값을 위한 sum 변수 선언,.. 2022. 5. 17.
반응형