일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 타입스크립트
- TypeScript
- entity
- TS
- ES5
- 데이터베이스 #try #이중
- 10px
- 1px border
- Props
- jwt
- 0.25px border
- 클론코딩
- 전역변수
- 당근마켓
- Websocket
- ZOOM
- es6
- 문서번호
- 0.75px border
- 0.5px border
- github
- 으
- literal
- angular
- 서버리스 #
- Strict
- &연산
- npm
- font-size
- 컴포넌튼
- Today
- Total
목록공통/알고리즘 및 코딩테스트 (7)
복잡한뇌구조마냥
요즘 알고리즘으로 코딩문제를 많이 풀어보고 있는데, 예전처럼 문제에 속도가 많이나지 않는 상황이 안타깝다..많은 테스드 중에는 생길 수 있는 모든 상황에 대해 만들고, 그 값들이 결과와 일치하는 문제들이 많다보니까부분집합을 만드는 코드가 유용해서 따로 정리하려고 한다. 비트 마스크를 이용해서 배열의 모든 부분집합을 구하는 코드이다.column 배열의 원소들도 만들 수 있는 모든 조합을 includes 배열에 담는 내용이다. 1 column.length === 4 → 1 즉, 0~15까지의 숫자의 이진 수 0000 부터 1111까지의 각 자리에 해당하는 값을 대입한다고 생각하면 된다.배열이 [0,1,2,3]이 아닌 다른 배열이라도 적용된다. 비트마스크를 통해 각 자리의 포함 여부를 체크하여,i & (1 ..

자료구조- 데이터를 효율적으로 저장하고 처리하기 위한 방법론- 데이터를 어떻게 저장하고, 어떻게 접근할지에 대한 규칙을 정의.- 자주 사용되는 자료구조 형식 : 배열, 연결 리스트, 스택, 큐, 덱, 힙, 해시테이블, 트리, 그래프, 트라이 1.배열 (Array)- 같은 타입의 데이터를 연속적을 저장하는 자료구조 특징:고정 크기: 한 번 크기가 결정되면 변경할 수 없습니다.인덱스를 사용하여 빠르게 접근할 수 있습니다.시간 복잡도:인덱스를 통한 접근: O(1)삽입/삭제: O(n) (특히 배열의 중간에 삽입/삭제할 경우)2. 연결 리스트 (Linked List)- 각 요소가 데이터와 다음 요소에 대한 참조(링크)를 가지고 있는 자료구조종류:단일 연결 리스트(Singly Linked List): 각 노드가 다..

다익스트라는 그래프에서 모든 정점 까지의 최단 거리를 구하는 대표적인 알고리즘이다.위의 그래프 처럼 각 경로에 가중치가 있을 경우 특히 유용하고,가중치가 없는 경우에는 개인적으로 BFS를 사용하는게 더 유용했던 것 같다. 다익스트라 알고리즘을 이용할 때는 완전 이진트리 형태로 최소값을 꺼내기 유용한 Minheap(최소힙) 구조를 사용한다.Min Heapclass MinHeap { constructor() { this.heap = []; } insert(value) { this.heap.push(value); this.heapifyUp(this.heap.length - 1); } heapifyUp(index) { while (index > 0) { const pare..

여러개의 문자열 패턴을 단순하게 순회하면서 비교해서는 알고리즘 문제의 시간초과를 감당할 수 없어서 찾은 알고리즘 방식이아호 코라식이다. Aho-Corasick 알고리즘- 여러개의 문자열 패턴을 한 번에 빠르게 텍스트에서 찾을 수 있게 해주는 알고리즘이다. - 해당 알고리즘은 간단하게 얘기하면 KMP + Trie + BFS 가 결합된 구조로, 여러패턴을 동시에 검색할 수 있는 효율적인 알고리즘이다. - 비교하고 싶은 문자열이 여러개일 때, 트라이 구조로 패턴 문자를 삽입하여 비교한다. 원리를 많이 설명하는데 해당 사진을 많이 사용해서 참고자료로 가져와봤다.- 노드가 처음시작할 때 h냐 s냐에 따라 갈 수 있는 방향이 다음과 같이 정해진다.- 만약에 he에서 글자가 끝나지만 찾는 문자가 hers라면 rs까..
최근에 HackerRank에서 코딩테스트를 보게되었는데 node.js 방식으로 javascript가 출제되어서 당황했던 기억이 있다.백준에서도 자바스크립트로 코테를 진행하려고 했더니 노드형식으로 되어있어서프로그래머스에서 코테를 보는 것이 익순한 나에게 참고자료로 추가하면 좋을 것 같아서 작성한다. 백준에서 자바스크립트로 코딩 문제를 풀 때는 언어를 javascript가 아닌 node.js를 선택해서입력값을 아래와 같이 받아서 사용하면 된다. 1. 입력값이 한 개일 때 (한 줄)const fs = require('fs');const input = fs.readFileSync("/dev/stdin").toString().trim(); 2. 입력값이 여러개일 때 (한 줄에 공백으로 구분)const fs = r..
🔍 BFS란?BFS는 Breadth-First Search의 약자로,한국어로는 너비 우선 탐색이라고 합니다. 📚 뜻 풀이"너비 우선"이란 말 그대로,어떤 **정점(노드)**에서 시작해서**가까운 노드(이웃)**부터 먼저 방문하고,점점 멀리 있는 노드로 탐색을 확장해 나가는 방식입니다.📌 BFS의 동작 방식시작 노드를 큐(queue)에 넣고큐에서 하나 꺼낸 뒤인접한(연결된) 노드들을 전부 한 번씩 방문하면서 큐에 추가큐가 빌 때까지 반복💡 BFS의 특징항목설명사용 구조큐 (Queue)방문 순서가까운 노드부터최단거리 구할 수 있음✅ 가능 (모든 간선 가중치가 동일할 때)재귀 구조 가능?❌ 보통 반복문과 큐 사용 📷 예시 (간단한 그래프) 1 / \ 2 3 / \ 4 ..

프로그래밍 기조 주차는 3건의 협업사항이 있었습니다.뭐가 어떻게 된건지 잘한다고 소문이 났다네요...다른 조원 분들이랑 접점이 거의 없었는데... 2주차만에 신기할 따름이네요.. 1 협업8.5 첫날 바로 옆 조인 5조에서 요청이 왔습니다.알고리즘 구조자체를 이해를 못하셔서 푸는 원리를 설명드렸습니다.알고리즘은 결국 순서도를 의미하며, 컴퓨터가 코드를 인식하면서 순서대로 동작하는 것부터 이해시켜드렸습니다.문법보다는 문제의 이해도로 어떤 순서로 풀어야 하는지 원리를 잡아드렸고,그 뒤에 반복문과 조건문, 변수의 사용에 대해 간단히 설명드렸습니다. 2 협업8.6 다음날 10조에서 요청이 왔습니다. 3분이 함께 오셨더라구요.프론트 엔드반으로 수강중이라 언어가 달랐으나 전공으로 자바를 공부한 경험이 있어서백엔드반과..