본문 바로가기

전체 글87

[프로그래머스][자바스크립트][Level1] 로또의 최고 순위와 최저 순위 /** * 로또의 최고 순위와 최저 순위 * https://programmers.co.kr/learn/courses/30/lessons/77484 */ function solution(lottos, win_nums) { let min = 7, max = 7, match = 0; const joker = lottos.reduce((acc, num) => { if (num === 0) acc++; return acc; } , 0); const lottosWithoutJoker = lottos.filter((num) => num !== 0); lottosWithoutJoker.forEach((num) => { if (win_nums.some((winNum) => winNum === num)) match++ }.. 2022. 1. 1.
[프로그래머스][자바스크립트][Level1] 부족한 금액 계산하기 https://programmers.co.kr/learn/courses/30/lessons/82612?language=javascript function solution(price, money, count) { var answer = 0, sum = 0; for (let i = 1; i money) { answer = sum - money; } return answer; } 2021. 8. 5.
[프로그래머스][자바스크립트][Level2][카카오] 오픈채팅방 function solution(record) { const uidToName = record.reduce((obj, item) => { const itemArr = item.split(" "); if (!obj[itemArr[1]]) { obj[itemArr[1]] = itemArr[2]; } else if (itemArr[0] === "Enter" || itemArr[0] === "Change") { obj[itemArr[1]] = itemArr[2]; } return obj; }, {}); const answer = record.reduce((arr, item) => { const itemArr = item.split(" "); if (state[itemArr[0]]) { arr.push(`${ui.. 2021. 7. 22.
[프로그래머스][자바스크립트][Level2][카카오] 문자열 압축 function solution(s) { if (s.length === 1) return 1; // make data var length = Math.floor(s.length/2); var data = new Array(length).fill(null).map(() => new Array()); for (let i = 1; i { let num = 1; return arr.reduce((acc, char, idx, org) => { if (org[idx+1] === char) { num++; } else { num !== 1 ? acc.push(num, char) : acc.push(char); num = 1; } return acc; }, []).join("").length; }); // return.. 2021. 7. 22.
[프로그래머스][자바스크립트][Level2] 124 나라의 숫자 function solution(n) { var answer = new Array(18).fill(0); var num = n; for (let i = 18; i > -1; i--) { const powNum = Math.pow(3, i); if (i === 0) { answer[i] === num; } if (num >= powNum * 2) { answer[i] = 2; num-=powNum*2; } else if (num >= powNum) { answer[i] = 1; num-=powNum; } } answer.reverse(); while (true) { answer = answer.slice(answer.findIndex(item => item > 0)); if (answer.indexOf(0.. 2021. 7. 21.
[프로그래머스][자바스크립트][Level2] 타겟 넘버 https://programmers.co.kr/learn/courses/30/lessons/43165 function solution(numbers, target) { var answer = {number: 0}; f(numbers, 0, 0, answer, target, "+"); f(numbers, 0, 0, answer, target, "-"); return answer.number; } function f(numbers, idx, result, answer, target, calc) { if (calc === "+") { result += numbers[idx]; } else if (calc === "-") { result -= numbers[idx]; } if (numbers.length - 1.. 2021. 7. 20.
[프로그래머스][자바스크립트][Level2] 짝지어 제거하기 https://programmers.co.kr/learn/courses/30/lessons/12973 function solution(s) { if (s.length % 2 === 1) return 0; var arr = s.split(""); var answer = new Stack(); for (let i = 0; i < s.length; i++) { if (answer.peek() === arr[i]) { answer.pop(); } else { answer.push(arr[i]); } // 이 코드 없으면 2번째 효율성에서 막힘. 질문하기에서 참조함. if(arr.length - i < answer.length) return 0; } return answer.isEmpty() ? 1 : 0; } .. 2021. 7. 20.
[Leetcode][Javascript][Easy] 118. Pascals Triangle /** * https://leetcode.com/problems/pascals-triangle/ * @param {number} numRows * @return {number[][]} */ var generate = function(numRows) { var answer = [[1], [1,1]]; if (numRows === 1) { return answer.slice(0,1); } else if (numRows === 2) { return answer; } for (let i=2; i 2021. 7. 10.
[Leetcode][Javascript][Medium] 718. Maximum Length of Repeated Subarray /** * https://leetcode.com/problems/maximum-length-of-repeated-subarray/ * https://leetcode.com/explore/challenge/card/july-leetcoding-challenge-2021/609/week-2-july-8th-july-14th/3807/ * @param {number[]} nums1 * @param {number[]} nums2 * @return {number} */ var findLength = function(nums1, nums2) { var maxLength = 0; while (nums1.length > 0) { for (let i=0; i= nums2.length || j >= nums1.length.. 2021. 7. 9.
[Leetcode][Javascript][Easy] 202. Happy Number /** * https://leetcode.com/problems/happy-number/ * @param {number} n * @return {boolean} */ var isHappy = function(n) { var memoize = {}; var happy = n; while (happy !== 1) { var tmp = happy; happy = sumOfSquares(happy); if (memoize[tmp] === undefined) { memoize[tmp] = happy; } else { break; } } if (happy === 1) { return true; } return false; }; function sumOfSquares(n) { return n.toString().sp.. 2021. 7. 8.
[Leetcode][Javascript][Easy] 136. Single Number /** * https://leetcode.com/problems/single-number/ * @param {number[]} nums * @return {number} */ var singleNumber = function(nums) { var answer = nums[nums.length-1]; for (let i = 0; i < nums.length - 1 ; i++) { if (nums.indexOf(nums[i], i+1) === -1 && nums.indexOf(nums[i]) === i) { answer = nums[i]; break; } } return answer; }; 2021. 7. 7.
[Leetcode][Javascript][Easy] 70. Climbing Stairs /** * https://leetcode.com/problems/climbing-stairs/ * @param {number} n * @return {number} */ var climbStairs = function(n) { return getSteps(n); }; var memoize = {0: 1, 1: 1, 2: 2, 3: 3}; var getSteps = function(n) { if (memoize[n]) { return memoize[n]; } else if (n < 0) { return 0; } else { var a = getSteps(n-1); var b = getSteps(n-2); if (!memoize[n-1]) { memoize[n-1] = a; } if (!memoize[n-2.. 2021. 7. 6.
[Leetcode][Javascript][Easy] 169. Majority Element /** * https://leetcode.com/problems/majority-element/ * @param {number[]} nums * @return {number} */ var majorityElement = function(nums) { var hashTable = {}, answer; if (nums.length === 1) { return nums[0]; } for (let i = 0; i (nums.length/2)) { answer =.. 2021. 7. 6.
[Leetcode][Javascript][Easy] 21. Merge Two Sorted Lists /** * https://leetcode.com/problems/merge-two-sorted-lists/ * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} l1 * @param {ListNode} l2 * @return {ListNode} */ var mergeTwoLists = function(l1, l2) { var node = new ListNode(); var firstNode = node; if (l1 === .. 2021. 7. 6.
[Leetcode][Javascript][Medium] 107. Binary Tree Level Order Traversal II /** * https://leetcode.com/problems/binary-tree-level-order-traversal-ii/ * Binary Tree Level Order Traversal II - LeetCode * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[][]} .. 2021. 7. 5.
[Leetcode][Javascript][Medium] 102. Binary Tree Level Order Traversal /** * https://leetcode.com/problems/binary-tree-level-order-traversal/ * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[][]} */ var levelOrder = function(root) { var bt = new Bin.. 2021. 7. 5.
[Leetcode][Javascript][Easy] 145. Binary Tree Postorder Traversal /** * https://leetcode.com/problems/binary-tree-postorder-traversal/ * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[]} */ var postorderTraversal = function(root) { var bt = new.. 2021. 7. 5.
[Leetcode][Javascript][Easy] 94. Binary Tree Inorder Traversal /** * https://leetcode.com/problems/binary-tree-inorder-traversal/ * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[]} */ var inorderTraversal = function(root) { var bt = new Bin.. 2021. 7. 5.