목록알고리즘 (3)
Jiny Devlog
해시해시의 개념해시는 해시 함수를 사용해서 변환한 값을 인덱스로 삼아 키와 값을 저장해서 빠른 데이터 탐색을 제공하는 자료구조해시는 키와 데이터를 일대일 대응하여 저장하므로 키를 통해 데이터에 바로 접근할 수 있다.배열로 구현한 연락처특정 데이터의 위치를 판단할 수 있는 정보가 없으므로, 선형탐색 해야 함선형탐색: 배열의 처음부터 끝까지 차례대로 원하는 값을 찾는 방법해시를 적용한 연락처해시 함수를 사용해서 변환한 값을 인덱스로 삼아 키-값을 저장해서 빠른 데이터 탐색 제공해시테이블이름 키에 해시함수를 적용하면 인덱스를 얻는다몇번을 해봐도 이름의 해시함수 적용값은 인덱스가 된다.이름을 가지고 바로 연락처 위치를 알 수 있다.이름 자체로 인덱스를 구할 수 있다.해시함수(정의)임의의 키를 해시테이블의 인덱스..
스택스택의 개념LIFO (Last In First Out), 가장 최근에 들어간 원소가 가장 먼저 나오는 자료구조코딩테스트 특정 문제에서 스택을 필요로 하는 경우 스택을 선택할 수 있어야 한다.ADT란?ADT(Abstract Data Type): 추상 데이터 타입세부 사항을 숨기고 사용자에게 필요한 기능만 명시세부 사항(내부 자료구조, 프로그래밍 언어, 저장 공간의 크기)사용자에게 필요한 기능(연산, 입력, 출력)ADT를 사용하면, 복잡한 자료구조의 내부 구현을 감추고, 필요한 연산만 정의함으로써 자료구조 동작 자체에 집중할 수 있음구분정의설명연산boolean isFull()가득 차 있으면 true, 아니면 false 반환연산boolean isEmpty()데이터가 하나라도 있으면 false, 아니면 tr..
시간복잡도시간복잡도란, 알고리즘의 성능을 나타내는 지표로 입력 크기에 대한 연산 횟수의 상한을 의미한다.(입력 크기 = 처리해야 할 데이터양) 입력값을 기준으로 자료구조 및 알고리즘을 고려한다.컴퓨터가 초당 연산할 수 있는 최대 횟수는 약 1억 번이다.ex) N값이 1,000,000일경우 N^2은 사용할 수 없지만 logN은 사용할 수 있다. * N^2 = 1,000,000 * 1,000,000 = 제한시간 1초 초과 * logN = 2^19 점근적 표기법정확한 연산횟수가 아닌 연산횟수의 추이를 활용해 시간복잡도를 표기최악의 경우를 고려해서 점근적 표기법으로 나타내는 것을 빅오표기라고 한다.시간 복잡도N의 가용 범위시간 복잡도N의 가용범위O(logN)10억O(N)1,000만~2,000만O(Nlog..