본문 바로가기

자바스크립트67

[자바스크립트/알고리즘] 스택 - 괄호 검사 괄호가 올바른 쌍이면 "YES", 그렇지 않으면 "NO"를 출력합니다. 예를 들어 ((()))()는 쌍이 올바르지만, ((())은 올바르지 않습니다. const check = (str) => { let stack = [], cnt = 0; for(let x of str){ if(x === '('){ stack.push(x); cnt++; } else { stack.pop(); cnt--; } } if(cnt) return 'NO'; return 'YES'; } 스택을 이용한 간단한 알고리즘이다. '(' 차례에는 stack에 push를 해주고 cnt를 증가시킨다. ')'의 경우에는 pop을 해주고 cnt를 감소시킨다. cnt가 0이 아닐경우에는 짝이 맞지않아서 스택에 '(' 또는 ')'가 한개 이상 있다는.. 2021. 5. 11.
[자바스크립트] 2차원 배열 1차원으로 바꾸기 코드 let arr = [10, 13, 10, 11, 15, 12, 32, 30, 23, 11, 11, 25, 50, 33, 15, 29, 27, 21, 37, 27, 18, 13, 30, 13, 16]; let newArr = []; while(arr.length) newArr.push(arr.splice(0,5)); console.log(newArr); arr.length가 0이 되기 전까지 1줄씩 splice하여 newArr에 넣는다. 출력결과 2021. 3. 18.
[자바스크립트] Array.from() - 배열 초기화 한번에 하기 정말 간단한 한줄짜리 코드이다. 일일히 반복문을 돌리며 초기화를 했는데, 이 방법을 사용하면 그렇게 할 필요가 없다! 자바스크립트 Array 객체에는 Array.from() 이라는 함수가 존재하는데 길이 객체와 값을 반환하는 콜백함수를 매개변수로 넘겨주면 된다. let answer = Array.from({length:5}, ()=>1); console.log(answer); // 결과 : [1, 1, 1, 1, 1] answer = Array.from({length:5}, (v, i)=> i); console.log(answer); // 결과 : [0, 1, 2, 3, 4] Array.from() 함수의 특징은 얕은 복사(shallow-copied) 된 새로운 객체를 생성한다는 것이다. Array.fr.. 2021. 3. 17.
[자바스크립트/알고리즘] Leetcode - 부분 배열의 최대합 [문제] 53. Maximum Subarray Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. [예시] Input Output [-2,1,-3,4,-1,2,1,-5,4] 6 [1] 1 [5,4,-1,7,8] 23 [풀이] var maxSubArray = function(nums) { for(let i = 1; i < nums.length; i++){ nums[i] = Math.max(nums[i], nums[i]+nums[i-1]); } return Math.max(...nums) }; 반복문을 돌면서 nums.. 2021. 3. 13.
[자바스크립트/알고리즘] LeetCode - 회문 정수 [문제] 9. Palindrome Number Given an integer x, return true if x is palindrome integer. An integer is a palindrome when it reads the same backward as forward. For example, 121 is palindrome while 123 is not. [예시] Input Output 121 true -121 false 10 false -101 false [풀이] 프리코드캠프에서 풀었던 회문 문제와 거의 동일하다. [자바스크립트/알고리즘] 회문(Palindrome) 검사 문제 주어진 문자열이 회문이면 true를 반환, 아니면 false를 반환하다. 영숫자가 아닌 문자들(non-alphanum.. 2021. 3. 7.
[자바스크립트/알고리즘] LeetCode - 정렬된 두 리스트 합치기 [문제] 21. Merge Two Sorted Lists Merge two sorted linked lists and return it as a sorted list. The list should be made by splicing together the nodes of the first two lists. [예시] Input Output l1 = [1,2,4], l2 = [1,3,4] [1,1,2,3,4,4] l1 = [], l2 = [] [] l1 = [], l2 = [0] [0] [풀이] /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * th.. 2021. 3. 7.