전체 글

개발환경

[gpg] gpg key 삭제 방법

gpg --delete-secret-keys [키ID] ex) gpg --delete-secret-keys 0xABCD1234 gpg --delete-key [키ID] ex) gpg --delete-keys 0xABCD1234 비밀키를 먼저 삭제한 후 공개키를 삭제한다.

Javascript/React

[React & Jest ] 리액트 오픈소스 아주 살짝 구경해보기

언젠가 React같은 큰 프로젝트에 기여를 해보고 싶다. React 작동 방식 공부도 할 겸 소스코드를 구경해보기로 했다. 💡오픈소스 이해하는 꿀팁 테스트코드를 먼저 보세요! 테스트코드를 먼저 보면 코드를 이해하는데 도움이 된다고 한다. 역시, 어렵다. 하지만, 한가지는 알겠다. 아래의 코드를 보자. ⌨️코드 원본 코드 링크 it('renders an empty fragment', () => { const Div = () => ; const EmptyFragment = () => ; const NonEmptyFragment = () => ( ); ReactDOM.render(, container); expect(container.firstChild).toBe(null); ReactDOM.render(, ..

Javascript/문제풀이

[프로그래머스] Lv. 2 [1차] 캐시 - 자바스크립트 풀이

문제 문제 링크 설명 cache hit일때, 삽입정렬을 응용해서 풀었다. 코드 function solution(cacheSize, cities) { const CACHE_HIT_TIME = 1; const CACHE_MISS_TIME = 5; let cache = Array.from({ length: cacheSize }); let total = 0; for (let city of cities) { city = city.toLowerCase(); let idx = cache.indexOf(city); if (idx !== -1) { // cache hit for (j = idx - 1; j > -1; j--) { cache[j + 1] = cache[j]; } cache[0] = city; total +..

Javascript/기타

[Javascript] findIndex()와 indexOf()의 차이

✅공통점 자바스크립트에서 findIndex()와 indexOf()는 둘 다 배열(Array)에서 특정 값을 찾는 메서드이다. 하지만 둘 사이에는 몇 가지 중요한 차이점이 있다. ❌차이점 비교 방식의 차이 findIndex(): 배열의 각 요소에 대해 콜백 함수를 실행하며, 콜백 함수의 반환값이 true인 첫 번째 요소의 인덱스를 반환한다. 즉, 콜백 함수에 사용자 정의의 비교 로직을 적용할 수 있다. indexOf(): 주어진 값과 배열의 요소를 엄격한(===) 비교를 통해 찾는다. 값의 타입과 값이 모두 일치하는 요소를 찾아 인덱스를 반환한다. 사용 가능한 환경의 차이 findIndex(): ECMAScript 2015(ES6)에서 도입된 메서드로, 브라우저 및 일부 환경에서 지원하지 않을 수 있다. ..

Javascript/문제풀이

[프로그래머스] Lv.3 이중우선순위큐 - 자바스크립트 풀이

문제 문제 링크 설명 원래는 힙 2개를 사용해서 푸는 문제이다. 하지만 프로그래머스에서는 배열 1개로 풀어도 통과된다 다음에는 힙을 직접 구현해서 풀어보고싶다. 코드 function solution(operations) { let queue = []; for(let operation of operations){ if (operation ==='D 1'){ let max = Math.max(...queue); let deleted = false; let newQueue = []; for(let q of queue){ if(q===max){ if(!deleted){ deleted = true; } }else{ newQueue.push(q); } } queue = newQueue; } else if(opera..

Javascript/기타

프론트엔드 강의 추천 (자바스크립트, 리액트, 타입스크립트, 코딩테스트)

별점이 높은 강의들 중에서도 괜찮은 강의들만 모아봤다. 코딩테스트 대비 자바스크립트로 자료구조나 알고리즘을 구현한 한국어 지원 강의는 이것밖에 없지 않을까? 몇몇 알고리즘은 빠진 것 같아서 아쉬웠다. (위상정렬 이라던가...) 강의력 ⭐⭐⭐⭐⭐ 가성비 ⭐⭐⭐⭐⭐ 내용 ⭐⭐⭐⭐ 【한글자막】 JavaScript 알고리즘 & 자료구조 마스터클래스 보기만 해도 문제풀이 실력이 오르는 신기한 강의이다. 심화 버전도 있다면 좋을 것 같다. 여기도 위상정렬같은 알고리즘은 다루지 않는 것 같다. 강의력 ⭐⭐⭐⭐⭐ 가성비 ⭐⭐⭐⭐ 내용⭐⭐⭐⭐ 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) - 인프런 | 강의 자바스크립트(JavaScript)로 코딩테스트를 준비..

자료구조, 알고리즘

[자료구조] 큐(Queue) - 자바스크립트로 구현하기

설명 연결 리스트는 삽입과 삭제의 시간 복잡도가 O(1)이다. 따라서 큐를 배열이 아닌 연결리스트로 구현하면 성능상 이점이 있다. 단일 연결 리스트로 구현해서 삽입은 맨 뒤에, 삭제는 맨 앞에서 진행한다. (삭제를 뒤에서 하면 시간이 오래 걸리기 때문이다.) 코드 class Node { constructor(value){ this.value = value; this.next = null; } } class Queue { constructor(){ this.first = null; this.last = null; this.size = 0; } enqueue(val){ var newNode = new Node(val); if(!this.first){ this.first = newNode; this.last ..

Javascript/문제풀이

[프로그래머스] Lv.2 영어 끝말잇기 - 자바스크립트 풀이

문제 문제 링크 설명 반복문을 돌면서 단어를 집합에 넣는다. 이미 집합에 있는 단어이거나 이전 단어의 끝 문자와 현재 단어의 첫 문자가 다르면 계산해서 반환한다. 반복문을 다 돌았다면 [0, 0]을 반환한다. 코드 function solution(n, words) { let s = new Set(); s.add(words[0]); for (let i = 1; i < words.length; i++) { let prev = words[i - 1]; let curr = words[i]; if (s.has(curr) || prev.at(-1) !== curr.at(0)) { return [(i % n) + 1, parseInt(i / n) + 1]; } else s.add(curr); } return [0, ..

리즈(Liz)
localhost:5173