HashMap의 함수 put(key, value) : key와 value를 해시맵에 추가한다. getValue(key) : 입력받은 key의 value를 반환한다. keys() : 해시맵의 모든 key를 반환한다. remove(key) : 입력받은 key와 key에 해당하는 value를 삭제한다. replace(key, value) : 입력받은 key의 value를 입력받은 value로 변경한다. size() : 해시맵의 value의 갯수를 반환한다. isEmpty() : 해시맵의 데이터가 0인지 확인한다. clear() : HashMap의 모든 데이터를 삭제한다. contains() : 입력받은 key가 HashMap에 있는지 확인한다. Map vs HashMap vs HashTableMap vs Tr..
OOP 란? Object Oriented Programming의 약자 -> 객체 지향 프로그래밍 여러 개의 객체 단위로 나누어 작업하는 방식 객체 실생활에서 인식할 수 있는 사물 자바스크립트의 기본 타입 method(행위)와 property(속성)를 가진다. property는 key와 value로 구성 property의value가 함수일 경우 일반 함수와 구분하기 위해 메소드라고 부른다. ( 속성 = 필드 = property / 함수 = method ) 클래스와 인스턴스 1. class 특정 객체를 생성하기 위해 일반화된 형태로 정의하는 일종의 틀 2. 인스턴스 클래스에 따라 구현된 실체 실체화된 인스턴스는 메모리에 할당된다. 3. 인스턴스화 클래스를 바탕으로 객체를 실체화하면 인스턴스가 되며, 이 과정..
git init : repository 생성 git status : 파일의 상태를 확인 git checkout : 브랜치 변경 실제 git에서는 브랜치를 지정하지만, 구현한 명령 동작은 지정한 repository를 사용한다는 의미. git add : workspace에서 staging area로 올리는 명령어. git update : 실제 git에는 존재하지 않는 명령어지만, 구현한 명령어에서는 파일이 수정된 것을 반영하기 위해 사용된다. git commit : 실제 git에서는 stage area에 올라간 Staged 파일들을 local repository에 커밋 메시지와 저장한다. 구현한 명령어는 local repository 역할을 하는 gitRepository라는 저장소에 커밋메시지와 함께 저장된..
(1) Stack (스택) 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조 Last In First Out 데이터의 입력을 push → append(), 출력을 pop() (2) Queue (큐) 먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조 First In First Out 스택과 반대 개념 파이썬은 리스트를 사용해 큐 구조를 사용 put → append(), get → pop(0) (3) Tuple (튜플) 값의 변경이 불가능한 리스트 선언 시 "( )" 사용 리스트의 연산, 인덱싱, 슬라이싱 등 동일하게 사용 프로그램을 작동하는 동안 변경되지 않은 데이터의 저장 함수의 반환 값 등 사용자의 실수에 의한 에러를 사전에 방지 (4) 집합 (Set) 값을 순서없이 저장, 중복을 불허하는..
1. 컴퓨터 구조 3대 요소 메모리, CPU, 입/출력 장치 2. 메모리 프로세서가 동작하기 위한 미리 작성된 '프로그램' 영역과 값을 읽거나 쓰는 '데이터' 영역으로 나뉜다. 롬 - 읽기만 가능한 메모리 램 - 읽고 쓸 수 있는 메모리 3. CPU (Central Processing Unit) 메인 메모리에서 읽어온 데이터를 처리하는 장치 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하고 처리하는 제어 장치 컴퓨터의 핵심 부품 메모리에 저장된 프로그램을 차례대로 fetch해서 해당 명령어를 분류 (decode)해서 실행(execute)한다. 여러 종류의 레지스터와 연산을 담당하는 ARU(산술 논리 연산 장치), 명령을 처리하는 파이프라인으로 구성 fetch : 프로그램의 메모리에서 명령어를 불러오는 ..
해시 테이블 (Hash Table) hash 함수를 통해 key를 해시 코드로 변환하고, 이 해시코드로 인덱스를 계산해 value에 접근한다. hash function : 해시 코드로 변환하는 함수 Hash Function 1. 나눗셈 법 h(k) = k mod m 입력받은 key의 각 문자를 유니코드로 변환 후 HashMap의 size로 나눈 나머지 값으로 사용한다. m은 HashMap의 크기이며 소수를 사용한다. (2의 제곱수와 거리가 먼 소수) 2. 곱셈 법 h(k) = (kA mod 1) * m k는 숫자로 된 키, 0 < A < 1 m은 중요하지 않으며 보통 2의 제곱 수로 정한다. 나눗셈 법보다는 느리고 2진수 연산에 최적화된 컴퓨터 구조를 고려한 해시함수이다. 3. Universal Hash..
1. 배열 인덱스에 해당하는 원소를 빠르게 접근해야 할 때 데이터를 자주 바꾸거나 확인하는 일 없이 쌓아두고 싶을 때 데이터의 삽입/삭제가 빈번하다면 배열 사용은 비효율적 연산의 시간복잡도 a. i번째 원소 확인 : O(1) - 원소가 연속하게 배치되어 있기 때문 b. 원소를 끝에 추가 : O(1) - 배열의 길이를 알기 때문 c. 마지막 원소 제거 : O(1) - 배열의 길이를 알기 때문 d. 임의의 위치에 원소 추가 : O(N) - 원소 추가 후 전부 한 칸씩 뒤로 밀어야 함 e. 임의의 위치에 원소 제거 : O(N) - 원소 제거 후 전부 한 칸씩 앞으로 밀어야 함 2. 연결리스트 (Linked-list) 각 원소가 자신의 다음 원소의 위치까지 가지고 있는 자료구조 Singly Linked List..
1. Big - O 표기법 f(n) = 2n^2 - 8n + 3 => O(n^2) 단순화된 함수 n^2이 임의의상수 c를 곱한 cn^2이 n이 증가함에 따라 f(n)의 상한이 된다. (단, c > 0) f(n) = O(g(n)) 복잡도의 점근적 상한을 의미 n이 증가함에 따라 O(g(n))이 점근적 상한이라는 것을 보여준다. cg(n)이 n0보다 큰 모든 n에 대해서 항상 f(n)보다 크다. 2. Big - Ω 표기법 f(n) = 2n^2 - 8n + 3 => Ω(n^2) f(n) = Ω(n^2) 은 'n이 증가함에 따라 2n^2 - 8n + 3이 cn^2보다 작을 수 없다'라는 의미 f(n) = Ω(g(n)) 복잡도의 점근적 하한을 의미 n이 증가함에 따라 Ω(g(n))이 점근적 하한이라는 것을 보여준..