본문 바로가기
반응형

자바스크립트13

1221. Split a String in Balanced Strings 문제 R과 L을 split후 R, L이 몇 개가 동일하게 있는지 체크해 리턴하는 문제다. 내 현재 풀이 /** * @param {string} s * @return {number} */ var balancedStringSplit = function(s) { let cnt = 0; let times = 0; for(let i of s){ if(i === 'R'){ cnt++ }else{ cnt-- } if(cnt === 0) times++ } return times }; 풀었던 문제인데 고민를 하는데 방법이 잘 떠오르지 않아 제공해주는 힌트를 보고 해결했다. 의외로 풀이는 간단했다. 'R'를 기준으로 R 이면 1을 더하고 L이면 1을 뺀다. 그리고 체크하는 수가 0이 되면 횟수를 증가시킨다. 이렇게 하면 .. 2022. 6. 10.
1389. Create Target Array in the Given Order 문제 nums 배열을 index 번호에 맞게 재배치 후 결과를 리턴하는 문제다. 내 현재 풀이 /** * @param {number[]} nums * @param {number[]} index * @return {number[]} */ var createTargetArray = function(nums, index) { let arr = []; for(let i in nums){ arr.splice(index[i],0,nums[i]) } return arr }; 새로운 배열에 담기 위해 arr를 만들었고, 배열에서 요소 추가 시 뒤예요 소들이 하나씩 뒤로 가야 하기 때문에 구글에 배열 추가를 검색했고, splice 함수를 발견해서 바로 적용해서 풀이했다. 내 예전 풀이 /** * @param {numbe.. 2022. 6. 9.
1342. Number of Steps to Reduce a Number to Zero 문제 나머지가 0이 나올 때까지 나누기를 진행하고 나누기의 진행한 횟수를 체크 리턴하는 문제이다. 내 현재 풀이 /** * @param {number} num * @return {number} */ var numberOfSteps = function(num) { let cnt = 0 while(num > 0){ num %2 === 1 ? num-=1 : num /=2 cnt++ } return cnt; }; while문을 통해 num이 0 보다 큰 수까지 진행을 하고 홀수이면 -1 짝수이면 /2를 진행했다. 그리고 횟수 체크를 위해 cnt++를 했다. 내 예전 풀이 /** * @param {number} num * @return {number} */ var numberOfSteps = function (.. 2022. 6. 5.
1365. How Many Numbers Are Smaller Than the Current Number 문제 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[j]){ cnt++; } } arr.push(cnt) cnt = 0; } return arr }; 되게 단순하게 생각해 풀었다. 인자 하나씩 꺼내서 다음 for문을 통해 하나씩 비교한 후 배열에 담아 리턴했다. .. 2022. 6. 3.
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.
반응형