분류 전체보기87 [Leetcode][자바스크립트][Easy] 566. Reshape the Matrix 풀이1 /** * 566_ReshapeTheMatrix.js * Easy * https://leetcode.com/problems/reshape-the-matrix/ */ var matrixReshape = function(mat, r, c) { if (mat[0].length * mat.length !== r * c) return mat; let temp = []; mat.forEach((subArr) => temp = temp.concat(subArr)); const answer = [[]]; temp.forEach((val) => { if (answer[answer.length - 1].length === c) answer.push([]); answer[answer.length - 1].push(v.. 2022. 1. 9. [프로그래머스][자바스크립트][Level1] 최소 직사각형 풀이 /** * 최소직사각형.js * Level1 * https://programmers.co.kr/learn/courses/30/lessons/86491 */ function solution(sizes) { var maxOfMax = 0, maxOfMin = 0; sizes.forEach((size) => { maxOfMax = Math.max(maxOfMax, Math.max(...size)); maxOfMin = Math.max(maxOfMin, Math.min(...size)); }); return maxOfMax * maxOfMin; } 가로/세로 중 큰 것 중에 가장 큰 것(maxOfMax), 가로/세로 중 작은 것 중에 가장 큰 것(maxOfMin)을 기준으로 지갑을 만들면 해결된다. 2022. 1. 9. [프로그래머스][자바스크립트][Level1] 약수의 개수와 덧셈 풀이 /** * 약수의개수와덧셈.js * Level1 * https://programmers.co.kr/learn/courses/30/lessons/77884 */ function solution(left, right) { var answer = 0; for (let i = left; i 2022. 1. 9. [프로그래머스][자바스크립트][Level1] 나누어 떨어지는 숫자 배열 풀이 /** * 나누어떨어지는숫자배열 * Level1 * https://programmers.co.kr/learn/courses/30/lessons/12910 */ function solution(arr, divisor) { const answer = arr.filter((num) => num % divisor === 0).sort((a, b) => a - b); if (answer.length === 0) return [-1]; return answer; } 나누어 떨어지는 수를 % 연산자로 확인하고 오름차순으로 정렬해서 return 한다. answer에 아무 값도 없을 경우 -1 을 담은 배열을 return 하는 케이스를 처리해준다. 2022. 1. 9. [프로그래머스][자바스크립트][Level1] 같은 숫자는 싫어 풀이 /** * 같은숫자는싫어.js * Level1 * https://programmers.co.kr/learn/courses/30/lessons/12906 */ function solution(arr) { var answer = []; arr.forEach((num ,idx, orgArr) => { if (num !== orgArr[idx + 1]) answer.push(num); }); return answer; } 연속적으로 나타나는 숫자들 중에 바로 다음 인덱스 숫자가 다른 값인 경우, 즉 연속된 수 중 가장 마지막 숫자만 answer 에 넣어주는 방식으로 해결했다. 2022. 1. 9. [프로그래머스][자바스크립트][Level1] 두 정수 사이의 합 풀이 /** * 두정수사이의합.js * Level1 * https://programmers.co.kr/learn/courses/30/lessons/12912 */ function solution(a, b) { if (a === b) return a; const min = Math.min(a, b) - 1, max = Math.max(a, b); return ((max * (max + 1))/2) - ((min *(min + 1))/2); } 간단하게 가우스의 합 정리를 활용해서 해결했다. 시각화 2022. 1. 9. [프로그래머스][자바스크립트][Level1] 나머지가 1이 되는 수 찾기 풀이 /** * 나머지가1이되는수찾기.js * https://programmers.co.kr/learn/courses/30/lessons/87389 */ function solution(n) { for (let i = 2; i < n; i++) { if (n % i === 1) return i; } } 나머지가 1인 수를 찾아서 return 한다. 2022. 1. 9. [프로그래머스][자바스크립트][Level1] 가운데 글자 가져오기 풀이 /** * 가운데글자가져오기.js * https://programmers.co.kr/learn/courses/30/lessons/12903?language=javascript */ function solution(s) { let answer = ''; const len = s.length; if (len % 2 === 0) { answer += s[len/2 -1]; answer += s[len/2]; } else { answer += s[Math.floor(len/2)]; } return answer; } 짝수면 가운데 2글자를, 홀수면 가운데 1글자를 return 한다. 2022. 1. 9. [프로그래머스][자바스크립트][Level1] 서울에서 김서방 찾기 풀이 - indexOf 활용 /** * 서울에서김서방찾기.js * https://programmers.co.kr/learn/courses/30/lessons/12919 */ function solution(seoul) { return `김서방은 ${seoul.indexOf("Kim")}에 있다`; } 풀이2 - findIndex 활용 /** * 서울에서김서방찾기.js * https://programmers.co.kr/learn/courses/30/lessons/12919 */ function solution(seoul) { return `김서방은 ${seoul.findIndex((el) => el === "Kim")}에 있다`; } 2022. 1. 9. [Leetcode][자바스크립트][Easy] 121. Best Time to Buy and Sell Stock 풀이 /** * 121_BestTimeToBuyAndSellStock.js * Easy * https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ */ var maxProfit = function(prices) { let currMin = prices[0], currMax = 0, _maxProfit = 0; prices.forEach((price) => { if (price > currMax) { currMax = price; _maxProfit = Math.max(_maxProfit, currMax - currMin); } if (price currMin) _maxProfit = Math.max(.. 2022. 1. 8. [Leetcode][자바스크립트][Easy] 350. Intersection of Two Arrays II 풀이1 /** * 350_IntersectionOfTwoArraysII.js * Easy * https://leetcode.com/problems/intersection-of-two-arrays-ii/ */ var intersect = function(nums1, nums2) { const answer = [], idxHash = {}; nums1.forEach((num) => { const idx = idxHash[num] === undefined ? nums2.indexOf(num) : nums2.indexOf(num, idxHash[num] + 1); if (idx > -1) { idxHash[num] = idx; answer.push(num); } }); return answer; }; 교집합을 .. 2022. 1. 8. [프로그래머스][자바스크립트][Level2] 구명보트 풀이 /** * 구명보트 * 탐욕법 * https://programmers.co.kr/learn/courses/30/lessons/42885?language=javascript */ function solution(people, limit) { let answer = 0, idx1 = 0, idx2 = people.length - 1; people.sort((a, b) => a - b); while (idx1 limit) { answer++; idx2--; } else { answer++; idx1++; idx2--; } } return answer; } 가장 가벼운 사람을 고정해놓고 가장 무거운 사람부터 내려오면서 가벼운 사람 + 무거운 사람 or 무거운 사람 only 로 나눠서 보트를 태우는 방식이다. 2022. 1. 8. 이전 1 2 3 4 5 6 ··· 8 다음