해시 개념- 배열을 가지고 연락처를 구현할 때 미우 비효율적 (O(N))- 해시 함수를 이용하여 연락처를 구현하면 훨씬 효율적 (O(1))해시 함수란? ⇒임의의 키를 해시 테이블의 인덱스로 변경해주는 함수 해시 테이블의 크기가 N이라면 해시함수는 0~(N-1)사이 값을 반환 해야함. 충돌 : 서로 다른 키를 해시함수에 넣었을 때 , 동일한 인덱스를 반환하는것. ⇒ 따라서 이 충돌을 최소화 할수록 좋은 해시함수 나눗셈법 ⇒ 입력값을 테이블의 크기로 나누고 나머지를 테이블의 주소로 사용. 주소 = 입력값 %테이블의 크기. 일반적으로 나눗셈법으로 구현된 해시 함수고 테이블 내 공간을 효율적으로 사용하기 위해서는 테이블의 크기를 소수로 정하는 것이 좋다고 알려짐. 해시 충돌 ⇒ 서로 다른키에 대해 ..
Algorithm
ADT란?⇒추상 데이터 타입의 약어세부 사항(내부 자료구조, 프로그래밍 언어, 저장공간의 크기)을 숨기고 사용자에게 필요한 기능(연산 ,입력,출력)만 명시 하는 것.=⇒ 이런식으로 사용자는 연산에 해당 되는 부분만 사용하여 데이터에 접근이 가능 합니다.=⇒ 구체적인 데이터 저장 방법은 추상화되어 있으므로 이를 통해 데이터의 무결성, 일관성을 유지할 수 있습니다—> 따라서 ADT를 사용하면 복잡한 자료구조의 내부 구현을 감추고, 필요한 연산만 정의함으로써 자료구조 동작 자체에 집중할 수 있습니다.Stack => LIFO(Last In First Out)코테에서는 이 문제에서 내가 스택을 필요로 하는 경우를 판단하여 문제를 풀어야 한다.가장 최근에 들어온 원소를 알 수 있다!가장 최근에 들어온 원소순으로 나..
빌트인 데이터 타입(배열)int main(){ int a[5]; a[3]=2; cout==> 임의 위치에 원소 삽입할 경우 O(N), 맨 뒤에 원소 삽입 할 경우 O(1)동적 배열int* dynamicArr=new int[10];//동적 배열 메모리 선언delete[] dynamicArr;// 동적배열 메모리 해제int size;cout문자열C와 다른점 =⇒ 문자의 연속으로 구성되며 \0 문자로 종료되지 않는다.문자열 관련 함수string str1="Hello, World!"cout 출력: World //7번째 문자인 W부터 자신을 포함한 5개 출력c++ 에서 string::npos 는 size_t 로 정의된 특수값이다. find함수 수행시 찾는 문자열이 없을때 npos를 반환한다.size_t pos =..
1. 시간 복잡도 ==> 입력값에 따른 연산횟수를 측정하여 알고리즘의 성능을 지표로 나타냄. - 코딩 테스트에서는 최악의 경우를 기준으로 연산횟수를 정하는게 합리적!2. 점근적 표기법 ==> 정확한 연산횟수 x 연산 횟수 추이만!==> 이때 최악의 경우를 고려해 점근적 표기법으로 나타낸 것이 빅오 표기법 EX) O(N^2) 3. 자주 보이는 복잡도 출처 [지금 무료] 코딩 테스트 합격자 되기 - C++ 강의 | dremdeveloper - 인프런dremdeveloper | 코딩 테스트 합격을 위한 C++ 강의, 책 없이도 가능! 저자와 직접 소통 가능한 커뮤니티 제공!, [사진]여기에 문의 하세요https://open.kakao.com/o/gX0WnTCf📘 코딩 테스트 합격자 되기 - C++편www..