PS/LeetCode

    LeetCode / Heap / 502번 / IPO / JS

    더보기LeetCode가 IPO를 앞두고 자본을 최대화하기 위해 최대 k개의 프로젝트를 선택하여 완료하려고 한다.각 프로젝트는 특정 이익(profits)과 시작하기 위해 필요한 최소 자본(capital)을 가지고 있다.초기 자본(w)로 시작하여 프로젝트를 선택하고, 선택한 프로젝트의 이익을 총 자본에 추가한다.최대 k개의 프로젝트를 선택하여 최종 자본을 최대화하는 방법을 찾아야 한다.최종 최대 자본을 반환하면 되는 문제이다. /** * @param {number} k 선택할 프로젝트의 최대 개수 * @param {number} w 초기 자본 * @param {number[]} profits 순수 이익 * @param {number[]} capital 시작하기 위해 필요한 최소 자본 * @return {nu..

    LeetCode / Two Pointer / 75번 / Sort Color / JS

    더보기문제는 0, 1, 2로 이루어진 배열을 다음 규칙에 따라 정렬하라는 문제이다. 0은 배열의 앞쪽에 배치1은 그 다음에 배치2는 배열의 끝쪽에 배치그냥 쉽게 오름차순으로 정렬하면된다. 하지만 다음과 같은 제한사항이 있다.공간 복잡도 O(1)원소의 총 개수는 n이고, 1  /** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */var sortColors = function (nums) { const COLOR = { RED: 0, WHITE: 1, BLUE: 2, }; let left = 0; let right = nums.length - 1; let ..

    LeetCode / Array / 260번 / Single Number ||| / JS

    정수 배열인 nums 배열이 주어진다.모든 수는 2번씩 나타나는데, 딱 두개의 수만 1번씩만 나타난다.이 두개의 수를 배열로 반환하는 문제이다. /** * @param {number[]} nums * @return {number[]} */var singleNumber = function (nums) { const count = {}; nums.forEach((num) => { count[num] = count[num] + 1 || 1; }); const result = []; for (const num in count) { const countOfNum = count[num]; if (countOfNum === 1) { result.push(num); } } r..

    LeetCode / Array / 1442번 / Count Triplets That Can Form Two Arrays of Equal XOR / JS

    정수로 이루어진 배열 arr가 주어진다.3개의 index가 주어지는데, 각각 i, j, k라고 하자. 이들은 다음과 같은 상관관계를 갖는다.0 그리고 우리는 이것을 이용해서 a와 b를 찾아야한다. a와 b는 다음과 같다.a = arr[i] ^ arr[i+1] ^ ... ^ arr[j-1]b = arr[j] ^ arr[j+1] ^ ... ^ arr[k]여기서 ^는 bitwise-xor 이다. a와 b가 같게되는 i, j, k쌍의 개수가 몇개인지 반환하면 되는 문제이다. 1 1  1. 실패 코드 - 시간 초과/** * @param {number[]} arr * @return {number} */var countTriplets = function(arr) { const len = arr.length; ..

    LeetCode / Binary Search / 1608번 / Special Array With X Elements Greater Than or Equal X / JS

    양수만 존재하는 nums 배열이 주어진다.x를 찾아서 반환하면 되는 문제인데, 이 x의 조건은 다음과 같다.nums 배열안에 존재하지 않는 수이다.x이상의 수가 정확히 x개 존재해야 한다.만약 x가 존재할 수 없다면 -1을 반환하면 된다. [ 풀이 1 - 단순 구현 ]/** * @param {number[]} nums * @return {number} */const specialArray = (nums) => { const sortedNumberList = [...nums].sort((a, b) => a - b); const min = 0; const max = sortedNumberList.at(-1); for (let x = max; x > min; x--) { let count = 0;..

    LeetCode / Array / 661번 / Image Smoother / JS

    Image Smoother - LeetCode Can you solve this real interview question? Image Smoother - An image smoother is a filter of the size 3 x 3 that can be applied to each cell of an image by rounding down the average of the cell and the eight surrounding cells (i.e., the average of the nin leetcode.com 이미지에 3*3의 필터를 씌워서 부드럽게 만드는 문제이다. 예를 들어 (i, j)의 셀을 부드럽게 만드려면, (i, j)를 중심으로 3*3의..