본문 바로가기
반응형

리트코드6

1688. Count of Matches in Tournament 문제 우승자를 뽑는 토너먼트다. 팀이 홀수이면 +1을 하고 2로 나누고 팀이 짝수이면 그대로 2로 나누면 된다. 그리고 나눈 나머지들을 다 더해서 총 매치 수를 반환하면 된다. 현재 풀이 /** * @param {number} n * @return {number} */ var numberOfMatches = function(n) { let sum = 0; while(n > 1){ if(n %2 === 1){ n=Math.floor(n/=2) sum+=n n+=1 }else{ n=Math.floor(n/=2) sum+=n } } return sum }; 몫에 소수점이 필요없어서 floor 함수를 이용했다. 그다음은 n이 홀수인지 짝수에 따라 분기를 처리해서 해결했다. 예전 풀이 /** * @param {n.. 2022. 6. 21.
1588. Sum of All Odd Length Subarrays 문제 배열의 개수가 홀수 일 때만 그 안에 값들을 더하는 문제다. 현재 풀이 /** * @param {number[]} arr * @return {number} */ var sumOddLengthSubarrays = function(arr) { let sum = 0 for(let i = 0; i < arr.length; i++){ for(let j = i; j 2022. 6. 15.
1791. Find Center of Star Graph 문제 그림을 보면 숫자 2가 다른 숫자들과 연결돼있다. 문제의 답은 숫자 2처럼 커넥션이 되는 숫자를 찾는 문제다. 현재 풀이 /** * @param {number[][]} edges * @return {number} */ var findCenter = function(edges) { let obj = {} for(let item of edges){ 버전 2 for(let num of item){ obj[num] ? obj[num] += 1 : obj[num] = 1; if(obj[num] > 1){ return num } } } 버전 1 // item.map(num=> { // obj[num] ? obj[num] += 1 : obj[num] = 1; // }) // for(let num in obj){.. 2022. 6. 13.
1773. Count Items Matching a Rule 문제 Rule Key와 Rule Value에 따라서 일치하는 조건에 맞는 개수를 리턴해주는 문제다. 나의 현재 풀이 /** * @param {string[][]} items * @param {string} ruleKey * @param {string} ruleValue * @return {number} */ var countMatches = function(items, ruleKey, ruleValue) { let cnt = 0; let idx = 0 for(let i of items){ switch(ruleKey){ case 'type': idx = 0; break; case 'color': idx = 1; break; default : idx = 2; } if(i[idx] === ruleValue) .. 2022. 6. 13.
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.
1528. Shuffle String 문제 스펠링을 indices에 숫자에 맞게 재배치해서 결과를 리턴한다. 내 현재 풀이 /** * @param {string} s * @param {number[]} indices * @return {string} */ var restoreString = function(s, indices) { let arr = [] for(let i in indices){ arr[indices[i]] = s[i] } return arr.join('') }; 처음에 생각한 방법 객체 형태로 만들어서 추출해보려 했데, 알파벳 e가 중복 때문에 원하는 방향으로 나오지 않았다. 그러고 나서 20분 정도 고민 후 새로운 배열에 indices안에 숫자를 그대로 이용해 배열의 순서 값으로 넣고 s의 요소들을 인덱스 번호대로 기입했다.. 2022. 6. 8.
반응형