diff --git a/reverse-bits/anniemon.js b/reverse-bits/anniemon.js new file mode 100644 index 000000000..e410af501 --- /dev/null +++ b/reverse-bits/anniemon.js @@ -0,0 +1,20 @@ +/** + * 시간 복잡도: 상수(32)번 반복이 일어나므로 O(1) + * 공간 복잡도: 상수(32) 크기의 배열을 생성하므로 O(1) + */ +/** + * @param {number} n - a positive integer + * @return {number} - a positive integer + */ +var reverseBits = function(n) { + let i = 0; + let arr = []; + while(i < 32) { + arr.push(n % 2); + n = Math.floor(n / 2); + i++; + } + const bi = arr.reverse().join(''); + const reversedBi = bi.split('').reverse().join(''); + return parseInt(reversedBi, 2); +}; diff --git a/two-sum/anniemon.js b/two-sum/anniemon.js new file mode 100644 index 000000000..403cefc67 --- /dev/null +++ b/two-sum/anniemon.js @@ -0,0 +1,20 @@ +/** + * 시간 복잡도: 최대 nums의 길이만큼 순회하므로, O(n) + * 공간 복잡도: map은 최대 nums의 길이 - 1 만큼의 공간을 차지하므로, O(n) + */ +/** + * @param {number[]} nums + * @param {number} target + * @return {number[]} + */ +var twoSum = function(nums, target) { + const map = new Map(); + + for(let i = 0; i < nums.length; i++) { + const complement = target - nums[i]; + if(map.has(complement)) { + return [i, map.get(complement)] + } + map.set(nums[i], i); + } +};