일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- js
- LeetCode
- til
- javascript
- 코드스테이츠
- 자바스크립트
- 손에 익히며 배우는 네트워크 첫걸음
- 정재남
- 타임어택
- 2주 프로젝트
- 토익
- 제로초
- 리트코드
- 백준
- 코어 자바스크립트
- 렛츠기릿 자바스크립트
- 4주 프로젝트
- 리액트
- Async
- 프로그래머스
- 파이썬
- 타입스크립트
- 회고
- 알고리즘
- programmers
- python
- 타입스크립트 올인원
- 리덕스
- SQL 고득점 Kit
- codestates
- Today
- Total
목록Problem Solving/Algorithm 개념 익히기 (6)
Jerry
sort 메서드는 임의의 배열 내부의 요소를 '문자열의 유니코드 포인트'를 기준으로 정렬된 배열 형태로 반환합니다. 이번 기록을 남기게 된 계기는 알고리즘 문제를 푸는 도중 array.sort() 로 정렬을 사용했는데 통과가 안 되었다. 그 원인을 찾아보니, sort()가 필자가 원하는 *오름차순 정렬을 한다고 생각했지만 그렇지 않은 예외의 경우가 있었기 때문이다. 정리하면, 필자는 오름차순 정렬을 위해 array.sort()를 사용했지만, 이건 오름차순이 아니라 문자열 유니코드 포인트에 따른 정렬이었다. 아래 코드 스니펫에서 예시 #2와 예시 #3의 비교해보면 좀 더 이해가 수월할 것이다. // #1 const months = ['March', 'Jan', 'Feb', 'Dec']; months.sor..
Divide and Conquer 분할 정복은 알고리즘의 전형적인 예 중 하나다. 보통 분할 정복 알고리즘은 아래 3가지 단계를 거친다.1. 분할하기(divide: 주어진 문제를 같은 형식의 하위 문제로 쪼갠다.2. 정복하기(conquer): 재귀적으로 하위 문제를 해결한다.3. 합치기(combine): 정답을 적절히 조합한다. 고전적인 분할 정복의 예로 병합 정렬(merge sort)이 있다. 병합 정렬은 배열을 두 반쪽으로 나누고, 재귀적으로 두 반쪽을 정렬하고 나서 정렬된 두 반쪽을 병합(merge)한다. https://youtu.be/2Rr2tW9zvRg 이 영상의 Abdul Bari 선생님이 Divide And Conquer에 대해 설명해주는 영상이다.위에서 이야기했듯이 문제 P를 임의적으로 K..
먼저, DFS에 대해서 알아보겠습니다. DFS는 Depth First Search에 약자입니다. 우리말로, '깊이우선탐색'이라고 부릅니다. (그래프) 깊이우선탐색은 (트리) 깊이우선탐색과 비슷합니다. 트리와 다르게, 그래프(graph) 유일한 문제은 사이클(주기)이 포함될 수 있으며 노드를 두 번 방문할 수 있다는 것입니다. 노드를 한 번 이상 방문을 피하려면, 방문한 배열에 불린(boolean)를 사용하는 것입니다. ex) Input: n = 4, e = 6 2 -> 0, 0 -> 2, 1 -> 2, 0 -> 1, 3 -> 3, 1 -> 3 Output: DFS from vertex 2 : 2 0 1 3 Explanation: DFS Diagram: 접근 방식 DFS는 그래프 데이터 구조나 트리 탐색에..
😃 오늘은 스택과 큐에 대해서 알아보겠습니다! 먼저, 자료구조는 데이터의 표현과 저장 방법을 의미합니다. 알고리즘은 저장된 데이터를 처리하는 과정입니다. 그러므로, 자료구조를 알아야 알고리즘을 배울 수 있습니다. 자료구조 중 하나로 배열이 있습니다! 자료구조에는 연결리스트, 스택, 큐 등이 있지만, 배열이 이것들을 모두 표현할 수 있습니다. 한 예로, 연결리스트에 대해서 이야기해보겠습니다. 연결리스트는 여러 개의 노드로 이루어져 있으며, 각 노드에는 데이터와 다음 노드의 주소를 담고 있습니다. 1->2->3->4->5 라는 연결리스트가 있다면, '1, 2, 3, 4, 5'는 데이터고 '->'는 주소를 가리킵니다. 연결리스트는 데이터를 추가/찾거나/제거하는 기능도 있어야 합니다. 자바스크립트 배열로 표현해..
* 필요한 문장으로 판단되는 경우에 발췌했으며, 출처 표기를 준수하였습니다. * 본 글은 개인 노션에서 만들어 티스토리에서 재구성했습니다. (노션 접속은 본 줄의 문장을 클릭) Linked List(링크드 리스트) 링크드 리스트는 IPL(Information Processing Language)를 주로 다룬 RAND 회사의 Allen Newll, Cliff Shaw and Herbert A. Simon에 의해 발달되었다. 링크드리스트는 lists, stacks, queues, associative arrays, S-expressions 같은 데이터 구조에 흔히 사용되며, 종류로 Singly Linked List, Doubly Linked List, Circular Linked List, Doubly Ci..
* 필요한 문장으로 판단되는 경우에 발췌했으며, 출처 표기를 준수하였습니다. ** 본 글은 개인 노션에서 가져왔습니다. 1. Stack In computer science, a stack is an abstract data type that serves as a collection of elements, with two main pricipal operation(push, pop) abstract data type is a mathematical model for data types. An abstract data type is defined by its behavior (semantics) from the point of view of a user, of the data, specifically in ..