본문 바로가기

개발자

(17)
[프로그래머스] 완주하지 못한 선수 - 자바스크립트 문제 설명 문제 풀이 function solution(participant, completion) { participant.sort(); completion.sort(); for(let i in participant) { if(participant[i] !== completion[i]) return participant[i]; } } 우선 participant와 competion을 정렬하고 for in 문을 돌려서 participant의 인덱스 번호에 해당하는 문자열과 completion의 인덱스 번호에 해당하는 문자열이 같지 않으면 paricipant의 값을 리턴한다. 실행 결과 코드 채점하고 제출
[JavaScript] Tree(트리) - Depth-first Search(깊이 우선 탐색), Breadth-first Search(너비 우선 탐색) 이진 트리의 탐색에는 크게 2가지 방법이 있다. 이번 포스팅에서는 깊이 우선 탐색(Depth-first Search)과 너비 우선 탐색(Breadth-first Search) 이 두 가지에 대하여 알아보고 각 순회들을 코드로 구현해 보려고 한다. Depth-first Search(깊이 우선 탐색) 1. Pre-Order Traversal(전위 순회) root -> left -> right 부모 노드 -> 왼쪽 자식 노드 -> 오른쪽 자식 노드 A, B, D, H, I, E, J, K, C, F, L, M, G, N, O 순으로 탐색 2. In-Order Traversal(중위 순회) left -> root -> right 왼쪽 자식 노드 -> 부모 노드 -> 오른쪽 자식 노드 H, D, I, B, J, ..
[JavaScript] Tree(트리) - 이론학습 트리의 정의 계층적 관계를 표현하는 자료구조를 트리라고 한다. 회사내의 조직도, 의사결정을 하는데 필요한 알고리즘 등을 트리 형태로 나타내고 있다. 트리의 용어 정리 - 노드(node) : 트리를 구성하는 각 요소 A, B, C, D, E, F - 간선(edge) : 노드와 노드를 연결하는 선 - 루트 노드(root node) : 트리 구조에서 최상위에 존재하는 노드 A - 단말 노드(terminal node) or leaf : 트리 구조에서 아래로 또 다른 노드(자식 노드)가 존재하지 않는 노드 C, D, E, F - 내부 노드(internal node) : 단말 노드를 제외한 모든 노드 A, B - A는 B, C, D의 부모 노드(parent node)이다. - B, C, D는 A의 자식 노드(chi..
[JavaScript] Queue - Linear Queue(선형 큐) Queue의 개념 큐는 FIFO(Frist In First Out)의 특징을 가지고 있다. 우리나라 말로 선입선출이라고 한다. 예를 들어 마트, 편의점 또는 가게 등에서 처음 들어온 물건을 가장 먼저 파는 것 같은 형태이다. 먼저 진열된 유통기한이 가까운 제품을 먼저 팔거나 가게, 콘서트 등에서 줄을 서고 있는 고객들을 연상시키면 될 것 같다. Linear Queue(선형 큐) 구현 선형 큐란 것은 배열의 공간에 들어간 데이터가 고정되어 데이터를 빼내더라도 초기화하지 않으면 원래 데이터가 있던 배열자리에 더이상 다른 것이 들어갈 수 없는 형태의 Queue이다. 1. class 생성자로 뼈대 만들기 class queueType { constructor(size) { this.maxSize = size; t..
[JavaScript] List - Double Linked List(이중 연결 리스트) Double Linked List(이중 연결 리스트)의 개념 이중 연결 리스트는 Link가 앞 뒤 node와 서로 연결되어 있는 리스트를 말한다. Front Link와 Back Link로 전, 후 노드에 접근이 가능하다는 특징이 있다. 맨 앞에 있는 노드와 맨 뒤에 있는 노드가 서로 연결되어 있어 첫 노드에서 마지막 노드를 검색할 때 시간복잡도가 O(1)로 찾을수 있다는 장점이 있다. Javascript를 이용한 Double Linked List(이중 연결 리스트) 구현 1. 클래스 생성자를 통하여 Data와 Link의 뼈대를 잡아준다. class nodeType{ constructor(item) { this.data = item; this.forwardLink = null; this.backLink =..