2. 우당탕탕 개발자111 2020.08.28 Majority Element 풀이 문제 ) 숫자의 배열이 주어질때, 과반수 이상을 차지하는 원소는 무엇인가? 풀이) 해쉬 테이블처럼 - object의 키밸류를 이용한다. 각각의 원소를 순회하며, object 에 나온 횟수를 저장한다. 횟수가 배열의 크기의 반 이상일 경우, 해당 원소를 리턴한다. var majorityElement = function(nums) { let result = {} for(let num of nums){ if(!result[num]){ result[num] = 1; } else { result[num]++; } if(result[num] >= nums.length /2){ return num } } }; 2020. 8. 28. 2020.08.26 Move Zeros 풀이 문제) 숫자 배열이 주어질때, 0은 배열의 끝으로 몰아 수정하는 것. 이 때, 배열은 카피해서 쓸 수 없으며, 원배열 자체를 수정해야 한다. 풀이) 야호! 이번 문제도 정해놓은 시간 안에 풀었다! (쉬운 문제, 정답률이 높은 것만...선정) 빈 배열을 정의하고, 0이 나올 때마다 해당 인덱스를 빈 배열에 오름차순으로 추가한다. 0이 아닌 숫자가 나올 경우, 0의 인덱스 중 제일 작은 숫자를 선정해 (오름차순으로 추가했기 때문에, 0번째 인덱스를 가져다 쓰면된다) 해당 인덱스와 순서를 스위치한다. O(n) 시간 복잡도를 가진다. /** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. .. 2020. 8. 26. 2020.08.25 Single number 풀이 (feat. 비트 연산자) 어제 풀었던 싱글 넘버 추출하는 문제. 어제 도저히 운동갔다와서 블로깅까지 할 체력이.. 아니었다^^ (핑계룰루!) 문제) 숫자가 담긴 배열이 주어진다. 이때 배열의 숫자는 2번 중복된다. 이때, 중복되지 않은 배열의 값은 무엇인가? 제약) O(n)과 별도의 공간을 쓰지 말것. (별도의 공간을 쓰지 말라는게 자바스크립트에서 의미 있는 말일까?) 풀이) 처음으로 정해진 시간 안에 문제를 풀었다! ^^ 배열을 우선 크기 순으로 정렬하고 -> 옆의 원소와 동일하면, 그 같은 원소 모두 삭제 -> 옆 원소와 다를 경우 return 한다. 배열인 array 도 결국 object의 일환이기 때문에 delete 키워드를 쓸 수 있다. splice가 아닌 delete를 쓴 이유는 배열의 원소가 삭제되면서 순서가 교란될.. 2020. 8. 26. 2020.08.24 Merge Two Binary Trees 풀이 문제 ) 두 개의 binary trees가 주어질때, 같은 위치의 노드의 합을 더해 새로운 binary tree를 만드는 것이다. 해결) 나는 너무 어렵게 접근했나보다. 해답은 생각보다 간단했다. (문제 풀때 너무 많은 시간이 걸리면, 그냥 답을 보고 익힌다. 수학의 정석 문제처럼, 알고리즘도 결국엔 같은 패턴이 있다고 생각하여 초반에 모르는 건 그냥 답을 보고 해결하는 방법에 익숙해지려고 노력한다) /** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * t.. 2020. 8. 25. 2020.08.24 Two Sum 다른 풀이 var twoSum = function(nums, target) { let comp = {}; for(let i = 0; i < nums.length; i++){ if(comp[nums[i]] !== undefined) { console.log(comp) return [comp[nums[i]], i] } comp[target - nums[i]] = i } } 주말에 하기로 한 two sum 의 풀이는 평일인 오늘에 하게 되었다. 해당 문제에 대한 풀이를 보니, 지난번 내가 푼 방법이 'Brutal force'한 풀이라며 말 그대로 우격다짐으로 억지로 풀어낸 해답답게 엄청난 runtime과 시간 복잡도를 자랑했다. 다른 풀이가 있을까 하여 봤더니, Hash table 의 방법을 이용하는 방법이었다. 자바스.. 2020. 8. 24. 2020.08.23 TIL 사이드 프로젝트로 지금 다니고 있는 회사의 엑셀로 수기 작업하는 일들을 자동화 하는 웹 앱을 만들고 있다. 빨리 만들어서 엑셀로 3번 반복하는 일들을 줄여보고 싶은데 좀처럼 속도가 나지 않는다. 그동안 클라이언트 부분을 확실히 안한게 티가 나는 것 같다. 로그인 파트 간단한데도 하루를 꼬박썼다. 하다 보면 또 익숙해지겠지! - Formik과 Yup 을 이용해 폼의 유효성 검사를 하는데, 좀처럼 익숙해지지 않다가 마지막에 알것 같은 느낌 - typescript를 어떻게 하면 효과적으로 쓸 수 있을지 고민. 지금까진 js 와 거의 차이나지 않는다. - twoSum 금요일에 풀이를 런타임을 어떻게 줄일 수 있을지 고민하기로 했는데, 결국 시간이 나지 않아 패스 - 운동은 웨이트 1시간 20분. 예전처럼 자주 .. 2020. 8. 24. 이전 1 ··· 6 7 8 9 10 11 12 ··· 19 다음