diff --git a/product-of-array-except-self/dalpang81.java b/product-of-array-except-self/dalpang81.java new file mode 100644 index 000000000..9960f0570 --- /dev/null +++ b/product-of-array-except-self/dalpang81.java @@ -0,0 +1,23 @@ +/* +* 시간복잡도: O(n) +* 공간복잡도: O(1) +* */ +class Solution { + public int[] productExceptSelf(int[] nums) { + int n = nums.length; + int[] answer = new int[n]; + + answer[0] = 1; + for (int i = 1; i < n; i++) { + answer[i] = answer[i - 1] * nums[i - 1]; + } + + int suffixProduct = 1; + for (int i = n - 1; i >= 0; i--) { + answer[i] *= suffixProduct; + suffixProduct *= nums[i]; + } + + return answer; + } +} diff --git a/reverse-bits/dalpang81.java b/reverse-bits/dalpang81.java new file mode 100644 index 000000000..99050b039 --- /dev/null +++ b/reverse-bits/dalpang81.java @@ -0,0 +1,16 @@ +/* +* 시간복잡도: O(1) +* 공간복잡도: O(1) +* */ +public class Solution { + // you need treat n as an unsigned value + public int reverseBits(int n) { + int result = 0; + for (int i = 0; i < 32; i++) { + result <<= 1; + result |= (n & 1); + n >>= 1; + } + return result; + } +} diff --git a/two-sum/dalpang81.java b/two-sum/dalpang81.java new file mode 100644 index 000000000..1742ee8af --- /dev/null +++ b/two-sum/dalpang81.java @@ -0,0 +1,23 @@ +/* +* 시간복잡도 : O(n) +* 공간복잡도 : O(n) +* */ + +import java.util.HashMap; +import java.util.Map; + +class Solution { + public int[] twoSum(int[] nums, int target) { + Map map = new HashMap<>(); + + for (int i = 0; i < nums.length; i++) { + int complement = target - nums[i]; + + if (map.containsKey(complement)) { + return new int[] { map.get(complement), i }; + } + map.put(nums[i], i); + } + return null; + } +}