본문 바로가기
반응형

JS18

1859. Sorting the Sentence 문제 글자 맨 끝에 있는 숫자대로 순서를 재배치해서 리턴하는 문제다. 이상하게 이 문제 왠지 풀이했던 기억이 안 나는데 한번 접근해보자!! 내 현재 풀이 /** * @param {string} s * @return {string} */ var sortSentence = function(s) { let arr = s.split(' '); let newArr = []; for(let end of arr) newArr[end[end.length-1]-1]=end arr = newArr.map(str=> str.slice(0,-1)); return arr.join(' '); }; 오랜만에 풀었던 문제중에 꽤나 고전하면서 다시 풀이했다. 고민했던 부분은 for문에 처음에 slice를 사용해서 풀이했는 데, 많은 .. 2022. 6. 12.
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.
1678. Goal Parser Interpretation 문제 주어진 command를 활용해 규칙에 맞게 변환해서 답을 리턴한다. G => G, () => o, (al) => al 이렇게 바꾸고 변환을 한다. 내 현재 풀이 /** * @param {string} command * @return {string} */ var interpret = function(command) { while(command.indexOf('()') > -1 || command.indexOf('(al)') > -1){ command =command.replace('()','o') command = command.replace('(al)','al') } return command }; indexOf를 통해 '()', '(al)'가 안 나올 때까지 진행하기 위해 while문을 활용했다... 2022. 6. 7.
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.
반응형