diff --git a/HamSungJun/Solution_1403.ts b/HamSungJun/Solution_1403.ts new file mode 100644 index 0000000..3e33f50 --- /dev/null +++ b/HamSungJun/Solution_1403.ts @@ -0,0 +1,16 @@ +function minSubsequence (nums: number[]): number[] { + nums.sort((a, b) => { + return Number(a < b) - Number(a > b) + }) + const sumNumsHalf = nums.reduce((acc, curr) => (acc += curr), 0) / 2 + let acc = 0 + for (let i = 0; i < nums.length; i++) { + acc += nums[i] + if (acc > sumNumsHalf) { + return nums.slice(0, i + 1) + } + } + return [] +}; + +console.log(minSubsequence([4, 4, 7, 6, 7])) diff --git a/HamSungJun/Solution_1710.ts b/HamSungJun/Solution_1710.ts new file mode 100644 index 0000000..34216c3 --- /dev/null +++ b/HamSungJun/Solution_1710.ts @@ -0,0 +1,24 @@ +function maximumUnits (boxTypes: number[][], truckSize: number): number { + boxTypes.sort(([b1, u1], [b2, u2]) => { + return Number(u1 < u2) - Number(u1 > u2) + }) + let acc = 0 + for (let i = 0; i < boxTypes.length; i++) { + const [boxCount, unitSize] = boxTypes[i] + + if (truckSize >= boxCount) { + acc += (boxCount * unitSize) + truckSize -= boxCount + } else if (truckSize > 0 && truckSize < boxCount) { + acc += (truckSize * unitSize) + truckSize = 0 + } + + if (truckSize === 0) { + break + } + } + return acc +}; + +console.log(maximumUnits([[1, 3], [5, 5], [2, 5], [4, 2], [4, 1], [3, 1], [2, 2], [1, 3], [2, 5], [3, 2]], 35)) diff --git a/HamSungJun/Solution_461.ts b/HamSungJun/Solution_461.ts new file mode 100644 index 0000000..f5ca228 --- /dev/null +++ b/HamSungJun/Solution_461.ts @@ -0,0 +1,20 @@ +function hammingDistance (x: number, y: number): number { + let numX = x + let numY = y + let diffCount = 0 + while (true) { + const modX = (numX === 1 ? 1 : numX % 2) + const modY = (numY === 1 ? 1 : numY % 2) + if (modX !== modY) { + diffCount += 1 + } + numX = Math.floor(numX / 2) + numY = Math.floor(numY / 2) + if (numX <= 1 && numY <= 1) { + break + } + } + return (diffCount + (numX === numY ? 0 : 1)) +}; + +console.log(hammingDistance(7, 8))