본문 바로가기

Programming/JavaScript tips

(22)
Linked List Data Structure(링크드 리스트 자료구조) 1. 링크드 리스트(Linked List) 란? 배열의 단점을 해결하고자 만든 자료구조로 몇개의 배열을 선언할 지 알 수 없기 때문에 이를 해결하기 위한 자료구조이다. 고리와 고리를 연결한 형태로 각각의 데이터가 다음 데이터가 누구인지 알고 있는 데이터 구조이다. 장점: 추가와 삭제가 용이하다. 미리 사이즈를 할당할 필요가 없다. 단점: 탐색 속도가 느리다. 링크드 리스트는 두가지 형태로 존재할 수 있다. Head-to-Tail search structure 헤드부터 테일까지 노드의 연결로 구조화 되어있다. 더미노드 헤드와 테일을 지정하지 않고 노드를 중심으로 연결된 자료구조 형태 ***마지막 노드(테일)는 항상 null을 가리킨다. 노드(or vertex): 각 객체, 자료 데이터필드(data fiel..
Queue Data Structure(큐 자료구조) 1. 큐(Queue) 란? 먼저 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조 형식 장점: 우선순위가 필요한 데이터를 처리할 때 유용 단점: 크기가 제한적이다. 큐의 앞이 비어있어도 데이터를 추가 할 수 없다. 2. 큐의 활용 캐시(Cache) 구현 선입선출이 필요한 대기열(인쇄 대기열, 티켓 카운터 등) 콜센터 고객 대기시간 프로세스 관리 등 3. 구현을 위한 의사코드(Pseudo Code) 1. 데이터를 담을 수 있는 객체 생성 2. 데이터의 추가/삭제 등 큐구조에 맞는 메소드함수를 만든다. 2-1. enqueue(data) : 새로운 데이터를 순서에 따라 다음 키값으로 지정해 추가한다. 2-2. dequeue() : 큐의 첫번째 키값을 가진 데이터를 제거한다. 2-3...
Stack Data Structure(스택 자료구조) 1. 스택(Stack) 이란? 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) or FILO(First In Last Out) 형식의 자료구조 장점: 구현이 쉽다. 원하는 데이터의 접근 속도가 빠르다. 단점: 데이터의 최대 개수를 미리 정해야 한다. 추가/삭제가 어렵다. 2. 스택의 활용 재귀 알고리즘 실행 취소 역순 문자역 만들기 수식의 괄호 검사 미로 찾기 컴퓨터 메모리 관리 등 3. 구현을 위한 의사코드(Pseudo Code) 1. 데이터를 담을 수 있는 객체 생성 2. 데이터의 추가/삭제 등 스택구조에 맞는 메소드함수를 만든다. 2-1. push(date) : 데이터가 추가되는 순서에 따라 다음 키값을 지정해준다. 2-2. pop() : 스택의 마지막 값을 가져..
자료구조의 이해 자료구조의 이해 1. 알고리즘이란? 알고리즘이란, 어떠한 문제를 해결하기 위한 여러 순차적인 동작들의 모임을 말한다. 그 문제가 해결되기 까지의 유한성을 가진 프로세스며, 의사코드(Pseudo Code)로 표현될 수 있다. 또한, 특정언어에 구속되지 않는다. 2. 왜 알고리즘은 중요한가? 프로그램의 성능에 큰 영향을 미친다. 알고리즘 설계시 다음 요소들을 고려해야 한다. 1) Time Complexity : 알고리즘을 수행하는데 걸리는 시간 2) Space Complexity : 알고리즘을 수행하는데 필요한 공간 3. 자료구조란? 데이터를 어떤 공간에 어떻게 저장할 것인지를 표현한 설계구조다. 자바스크립트의 배열(Array)과 객체(Object)는 대표적인 자료구조의 예라고 볼 수 있다. 적절한 자료구조..
조건문(if...statement)과 함수(function) 1. 조건문(if...statement) 모든 조건문은 Boolean 값이 true 인지 false 에 따라 실행되거나 실행되지 않는다. Boolean 이란, JavaScript 타입 중 하나로 true 혹은 false 의 반환 값을 갖는다. 아래와 같이 비교 연산자(comparison operator)를 통해 값을 반환할 수 있다. Comparison operators Description === equal to !== not equal to > greater than = greater than or equal to = 10) { return name + ', 나가서 먹자!'; } else { return name + ', 그냥 집에서 먹어.'; } } console.log(eatOut('Daniel'..
변수(variable)와 타입(type) 1. 변수_variable 변수(variable)란? = 이름(label)이 붙은 값. 다음과 같이 원하는 변수에 값을 대입시킬 수 있다. let myname = 'Daniel'; 여기서 말하는 " = " 는 " 같다. " 라는 개념이 아닌 " 대입한다(assign). " 라는 개념이다. 예를 들어, let pi = 3.141592; let r = 5; 이렇게 변수를 정의하고 원의 넓이를 표현식으로 쓰면 다음과 같다. let areaOfCircle = pi * r * r; 만약 할당값이 없다면 결과는 undefined를 얻게된다. 2. 타입_type JavaScript에는 여러종류의 형식이 존재한다. Type Examples Number(숫자열) 1, 3.141592, 505 String(문자열) 'Da..