본문 바로가기

전체 글138

[LeetCode] Rotate Array, Contains Duplicate Rotate Array leetcode.com/explore/featured/card/top-interview-questions-easy/92/array/646/ /** * @param {number[]} nums * @param {number} k * @return {void} Do not return anything, modify nums in-place instead. */ var rotate = function (nums, k) { // for(let i = 0; i < k; i++) { // const pop = nums.pop() // nums.unshift(pop) // } // return nums; const spliced = nums.splice(nums.length - k, nums... 2021. 1. 8.
[LeetCode] Remove Duplicates From Sorted Array https://leetcode.com/problems/remove-duplicates-from-sorted-array/ /** * @param {number[]} nums * @return {number} */ var removeDuplicates = function (nums) { const arr = Array.from(new Set(nums)); nums.splice(0, arr.length, ...arr); return arr.length; }; 처음엔 return [...(new Set(nums))].length 라고 했다가 틀려서 다시 읽어보니 단순히 중복을 제거하고 반환하는 것이 아니라 "Note that the input array is passed in by reference, which.. 2021. 1. 6.
[LeetCode] Best Time to Buy and Sell Stock II leetcode.com/explore/featured/card/top-interview-questions-easy/92/array/564/ /** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { let profit = 0; for(const i in prices) { console.log('오늘의 가격', prices[i]); if (i !== 0 && prices[i-1] < prices[i]) { profit += prices[i] - prices[i-1]; console.log('판매함', prices[i]); console.log('이윤', prices[i] - prices[i-1]) } } co.. 2021. 1. 6.
2020년 회고 코로나로 삭제된 듯한 기분이 들지만 은근 여러가지 일이 있었던 한 해였다. 개인적인 생각이지만 사람은 늘 성장하면서도 망각하는 동물이라 1년 전, 1달 전, 1주 전보다도 지금이 나아져 있지만 기록하지 않으면 무엇이 달라졌는지는 기억하기 힘든 것 같다. 좀 더 자주 회고했어야 하는데...로 시작하는 작년 회고가 되겠다. 2020 목표 달성 현황 (실패)해외여행, 파이프오르간 공연 보기 예약까지 했었으나.. 코로나로 취소되었다. (실패)내 서비스 만들어보기, 깃허브 잔디 심기 갑작스런 이직 준비로 최선을 다하느라... 실패. 대신 이직은 성공적이었다. (성공)블로그 글 24개 이상 쓰기 총 55개를 작성했다! 대성공! 매달 최소 1개는 꾸준히 썼다. 일단 주제가 생각나면 비공개로 메모해두고, 여유가 생기면.. 2020. 12. 28.
VS Code에서 Prettier 사용시 자동저장이 동작하지 않을 때 settings.json에서 formatOnSave도 바꿔줬고 editorOnSave도 해줬고 enable도 해줬는데 왜! 저장하면 자동으로 포맷팅이 안되는거야! 라고 헤매는 중이라면? Settings > "default formatter" 검색 > Default Formatter를 esbenp.prettier-vscode로 변경해주면 된다. 2020. 11. 23.
[윈도우 키보드 + mac] Caps Lock을 한영키로 사용하기 karabiner를 설치한다. Big Sur로 업데이트하려는 경우, 반드시 karabiner부터 업데이트하기를 권장한다... 엉망된다. karabiner-elements.pqrs.org/ Karabiner-Elements A powerful and stable keyboard customizer for macOS. karabiner-elements.pqrs.org 내 경우 리얼포스 윈도우 버전을 사용중이며, 아래와 같이 사용하고 있다. 추가로 command + space를 한영변환키로 사용하고 있음. 어떤게 더 편한지 찾는중이라서.. 카라비나 설치후 다음과 같이 설정해준다. caps lock -> f18 왼쪽 command -> 왼쪽 option 왼쪽 option -> 왼쪽 command 시스템 환경설정.. 2020. 11. 15.
[React + Typescript] Typing Tips 리액트 타이핑 팁 백엔드에서 라이트하게만 타입스크립트를 사용해오다가, 리액트에서 사용하려니 너무 어려웠다. 백엔드에서는 거의 내가 직접 만든 것들에 대해서만 타이핑하면 되었는데, 리액트에서는 리액트 컴포넌트까지 타이핑해야 하다보니 어떤 타입인지 제대로 입력하기가 헬이었다. 결국 처음엔 any로 도배하면서 구현했다가, 하나씩 실마리를 잡을 때마다 다른곳들을 채워가는 중... 그래서, 리액트+타입스크립트 쌩초보 입장에서 팁을 공유하고자 작성한다. 유용하다고 생각되는 것을 찾을 때마다 조금씩 보완할 예정이다. 💡 나만 몰랐던 이야기(?) RouteComponentProps은 라우트를 통해 렌더링되는 컴포넌트의 기본 prop이다. history, location, match, staticContext?로 구성되어 있다. Reac.. 2020. 11. 15.
[React] Warning: Component update a component Bar while rendering a different component 발생 조건 특정 컴포넌트 렌더링 시 mobx 스토어의 값을 변경하도록 함 내 경우 /bar/edit 라우트로 접속 -> bar edit 화면 렌더링 -> 스토어의 menu 값을 'edit'으로 변경하는 상황이었음 해당 스토어 값을 통해 다른 UI를 보여줘야 해서 이렇게 구현하게 됨 발생 원인 렌더링 중 state가 변경되면 안됨. state 변경시 다시 렌더링이 일어나므로 당연한거였다... 해결 방법 컴포넌트 렌더링 시 store 또는 state 값 변경이 필요한 경우, useEffect 안에서 값을 변경한다. useEffect(() => { menu.changeMenu(Menu.Edit); // 스토어의 값을 변경하는 코드(setState) }, []); 2020. 11. 15.
[React, Material UI] Warning: MaxListenersExceededWarning 발생 조건 Material UI에서 Grid 컴포넌트를 사용해 리스트 구현 리스트 테이블의 컬럼 수가 10개 이상일 때 발생 원인 Event listener는 10개가 default 컬럼을 resizing해주는 이벤트리스너(colResizer)가 컬럼수만큼 생성된다. colResizing 이벤트를 막을 수 있는 XGrid컴포넌트를 사용해도 되지만, 상업적 사용시 유료이다. 따라서 컬럼이 10개 이상이 되면 워닝이 발생함. 해결 방법 아래 코드 추가 require('events').EventEmitter.prototype._maxListeners = {컬럼 수}; 나는 12를 넣었다. 참고로 0을 넣으면 무제한이 되는데 권장하지 않는다. 2020. 11. 15.