본문 바로가기

전체 글131

[LeetCode] Plus One 숫자에 1을 더해서 리턴하면 되는 간단한 문제이지만, 배열로 쪼개져 있으며 숫자의 길이가 최대 100이므로 int로 변환해 1을 더하는 방식은 사용할 수 없다. leetcode.com/explore/featured/card/top-interview-questions-easy/92/array/559/ /** * @param {number[]} digits * @return {number[]} */ var plusOne = function(digits) { // 1899 -> 뒤에서부터 반복을 돌며 9면 0, 아니면 +1한다. => 1900 // 99 -> 뒤에서부터 반복을 돌며 9면 0으로 바꾸고, 마지막에도 9라면 1을 처음에 추가한다. => 100 const last = digits.length - 1.. 2021. 1. 12.
[LeetCode] Single Number, Intersection of Two Arrays II Single Number 배열 요소에 짝 없이 혼자 있는 요소를 찾는 문제. 하나씩 뽑아서 짝을 찾아 제거하는 방식으로 풀었는데, 좀 더 좋은 방법이 없을까... leetcode.com/explore/featured/card/top-interview-questions-easy/92/array/549/ /** * @param {number[]} nums * @return {number} */ var singleNumber = function(nums) { // 반복문은 최대로 돌아도 주어진 배열 길이의 반만큼만 돌면 된다. const count = Math.floor(nums.length/2); for(let i = 0; i < count; i++){ const item = nums.shift(); con.. 2021. 1. 12.
[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.