본문 바로가기 메뉴 바로가기

코딩 헬스장

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

코딩 헬스장

검색하기 폼
  • 분류 전체보기 (75)
    • 개념들 (4)
    • JavaScript (38)
      • React (14)
      • Next (0)
    • TypeScript (9)
    • Vue (6)
    • Algorithm (13)
    • 일상 (1)
    • 개인수련실 (4)
  • 방명록

javascript (33)
우선순위 큐 (Priority Queue)

1. 우선순위 큐 (Priority Queue) 우선순위 큐는 일반적인 큐(선입선출, First In. First Out)와 다르게 먼저 들어오는 데이터가 아니라, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조입니다. 여러 데이터 중 가장 우선순위가 높은 데이터에 대한 빠른 갱신과 접근이 가능할 때 사용합니다. 일반적으로 Heap 구조로 구현하며, 배열과 연결리스트로도 구현이 가능합니다. 배열과 연결 리스트는 간단히 구현이 가능하지만 데이터 삽입의 경우 모든 인덱스를 탐색해야하는 최악의 경우 선능이 좋지 않을 수 있으며, Heap은 구현은 배열과 연결리스트에 비해 어렵지만 좋은 선능을 가집니다. 배열, 연결리스트의 시간복잡도 [ 삽입 : O(n) , 삭제 : O(1) ] Heap의 시간복잡도 [ ..

Algorithm 2022. 6. 13. 18:10
누적합(Prefix Sum / Cumulative Sum) 알고리즘

( 누적합 알고리즘 간단 예제 ) [ 1, 2, 3, 4, 5 ] 로 이루어준 숫자 배열에서 각 구간까지의 합을 구하는 배열 [ 1, 3, 6, 10, 15] 을 구한다고 가정해보면 아래와 같이 2가지로 구할 수 있습니다. [ 첫번째 방법 ] 1 1+2 1+2+3 1+2+3+4 1+2+3+4+5 식으로 각 인덱스까지의 값을 반복하며 구하기. [ 두번째 방법 ] 1 1+2 3+3 6+4 10+5 식으로 이전 인덱스까지의 누적합에 현재 인덱스의 값을 더하여 구하기. 2가지 방법을 비교해보면 두 번째 방법이 훨씬 효율적이라는 것을 알 수 있습니다. 누적 합 이란 수열 An에 대해서 각 인덱스까지의 구간의 합을 구하는 것을 누적 합이라고 합니다. 시작점은 항상 첫번째 원소이며, R번째 원소까지의 합을 앞에서부터..

Algorithm 2022. 5. 24. 18:10
슬라이딩 윈도우 알고리즘(Sliding Window) (feat. 투 포인트)

1. 슬라이딩 윈도우 알고리즘 (Sliding Window) ( 슬라이딩 윈도우 알고리즘 간단 예제 ) 1, 2, 3, 4, 5, 6, 7 로 이루어진 숫자 배열에서 A[i] + A[i+1] + A[i+2] 형식으로 연속적인 3개의 숫자의 합의 최댓값을 구한다고 가정해보면 아래 5가지의 경우의 수가 나옵니다. [1, 2, 3], 4, 5, 6, 7 1, [2, 3, 4], 5, 6, 7 1, 2, [3, 4, 5], 6, 7 1, 2, 3, [4, 5, 6], 7 1, 2, 3, 4, [5, 6, 7] 다음으로 합을 계산하는 고정된 크기의 배열의 변화를 보면 [1,2,3] => [2,3,4] => [3,4,5] ... => [5,6,7]입니다. 그렇다면 어떻게 최소한의 계산으로 다음 배열의 합을 구할 수..

Algorithm 2022. 5. 23. 17:35
JS - async / await 병목 현상 (feat. promise.all)

* async / await ? Promise의 불편한 점을 개선하기 위해 ES7에서 추가된 키워드로, 비동기 코드를 마치 동기 코드처럼 보이게 작성할 수 있습니다. 일반 비동기 처리처럼 실행이 다음 라인으로 넘어가는 것이 아니라 결과값을 얻을 수 있을 때까지 기다립니다. 따라서 일반적인 동기 코드처리와 똑같은 흐름으로 코드를 작성 할 수 있습니다. * promise.all 여러 개의 프로미스를 동시에 실행시키고 모든 프로미스가 처리될 때까지 기다리는 경우 유용하게 사용할 수 있습니다. 일반적으로 다음 코드를 계속 실행하기 전에 서로 연관된 비동기 작업 여러 개가 모두 이행되어야 하는 경우에 사용합니다. 즉 프로미스들을 하나로 묶어 하나의 프로미스처럼 관리 할 수 있게 해 줍니다. 단 내부에서 프로미스들..

JavaScript 2022. 5. 20. 16:34
JS - 복사한 값, 붙여넣기 이벤트

복사한 값을 테이블 입력 컬럼에 붙여 넣기 하여 데이터가 입력되도록 하는 복사 & 붙여넣기 기능을 추가하다가 문제가 발생했습니다. keyDown 이벤트에 복사 키(Ctrl+C)를 눌렀을 때 해당 값을 전역 변수로 저장하고, 붙여 넣기 키(Ctrl+V)를 눌렀을 때 현재 컬럼 값이 복사된 타입과 같으면 값을 넣어주는 로직을 추가하여 수정하였습니다. 이렇게 처리하니 해당 페이지에서 복사, 붙여 넣기 하면 정상적으로 동작 하나, 그 외 경우(ex 액셀 데이터, 다른 인터넷 페이지.. )에서 복사한 값을 붙여 넣기 할때 문제가 발생했습니다. (그 외 경우는 다른 페이지이기 때문에 로직을 짠 keyDown 이벤트가 타지 않으므로) 원인을 파악하여 아래와 같이 간단한 예시로 정리해봤습니다. 1. 내 코드의 문제점 ..

JavaScript 2022. 5. 12. 18:00
이전 1 2 3 4 5 6 7 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 호이스팅
  • 자바스크립트 비동기 동작원리
  • 목표 일기
  • next.js 환경변수
  • 1급 시민
  • 함수형 컴포넌트
  • useRef
  • redux
  • next.js에 .gitignore가 적용되지 않을 때
  • react
  • 자바스크립트 동작원리
  • 가상스크롤
  • Virtual Scroll
  • 1급 객체
  • 렌더링 속도 개선
  • typescript
  • redirects
  • 1급 함수
  • 매겨변수와 인자
  • 시맨틱 웹
  • 타입스크립트
  • programmers
  • javascript
  • zustand
  • vue
  • rewrites
  • React로 쓰로틀링 디바운싱 구현
  • debouncing
  • array
  • Next.js
more
«   2025/12   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바