분류 전체보기
-
[Data Structure] Stack, Queue카테고리 없음 2020. 2. 9. 20:42
자료를 일정한 규칙에 따라 데이터를 정리하는 것을 자료구조(Data Structure)라고 한다. 자료를 효율적으로 저장하고 관리하기 위해서 자료구조를 알맞게 활용하는 것이 중요하다. 1. 스택 (Stack) 스택은 한 방향에서만 자료를 넣고 뺄 수 있는 구조를 의미한다. Stack의 사전적 의미는 '쌓다' 이다. 스택을 이해하기 위해서는 책상 위에 쌓아 올려진 책을 생각하면 편하다. 스택의 특징은 마지막으로 들어간 요소가, 제일 먼저 나간다는 데 있다. 이를 LIFO(Last In First Out)라고 줄여 말하기도 한다. 그림으로 보면 더욱 간편하다. 2. 큐 (Que)큐는 스택과 달리 양방향으로 열려 있어, 먼저 들어간 데이터가 먼저 나오는 구조를(FIFO, First In First Out)가지..
-
[Data Structure] Hash Table카테고리 없음 2020. 2. 7. 14:53
* Hash Table 해시테이블은 배열과 연결리스트의 장점을 취한 자료구조이다. 키-밸류 쌍의 자료를 저장한다. 배열과 유사한 구조로 각 칸별로 인덱스가 있다. 그 칸에 자료를 저장할 수 있다. 연결 리스트를 이용해 한 칸에 여러 개의 자료를 저장할 수 있다. * Hash Function 해시함수는 특정 키를 받으면 이를 일정한 규칙(함수)을 통해 해시코드를 만들어낸다. 2. 주어진 key 에 항상 같은 값을 반환 3. 무엇도 저장하지 않고, 그때그때 값을 줌 해시함수의 역할은 자료를 알맞게 구분해 해시테이블에 배분시키는 것이다. 따라서 해시함수가 얼마나 고르게 자료를 해시테이블에 배분하는지가 해시함수 알고리즘을 짤 때 가장 중요한 사항이다. * 예시 candy : sweet 이라는 자료가 있다고 가정..
-
[JavaScript] 객체 지향 프로그래밍 (OOP)카테고리 없음 2020. 2. 6. 21:24
대표적인 프로그래밍 방법론으로 절차적 프로그래밍(Procedural Programming)이 있다. 순차적인 처리가 중요시되며, 프로그램 전체가 유기적으로 연결되어 있다. 컴퓨터의 처리구조와 유사해 빠른 실행이 장점이다. 예를 들어 점심으로 볶음밥을 만들기로 했다. 팬을 달구고, 계란, 야채 등 재료른 준비해 넣고, 밥을 넣어 볶는다. 이 모든 과정이 순차적으로 이루져야 할 것이다. 해야 할 행동을 코드로 나타내면 다음과 같다. console.log('팬을 달굽니다') console.log('재료를 넣습니다') console.log('재료를 다같이 볶아줍니다') 세 줄의 코드로 요리가 가능해진다. 그런데, 오늘 점심 뿐만 아니라 오늘 저녁도 볶음밥을 먹게 된다면 어떻게 될까? //점심 볶음밥 만들기 co..