일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- DP문제
- 영상처리
- 다이나믹프로그래밍
- bfs문제
- 코테
- dfs문제
- 삼성코딩테스트
- MCU 딥러닝
- 삼성역량테스트
- tflite
- 그리디
- 삼성코테
- 자료구조
- 포스코 ai 교육
- BFS
- 딥러닝
- 알고리즘
- 코테 문제
- DP
- sort
- TensorFlow Lite
- 컴퓨팅사고
- 코딩테스트
- tinyml
- 초소형머신러닝
- dfs
- 포스코 교육
- 삼성역테
- 포스코 AI교육
- 임베디드 딥러닝
- Today
- Total
목록알고리즘 문제풀이/개념정리 (27)
코딩뚠뚠
priority_queue란 자료구조에서 우선순위큐는 먼저들어간데이터에 상관없이 우선순위가 높은 데이터가 먼저 반환되는 구조이다. C++ STL에서 priority_queue를 이용하여 쉽게 구현해낼 수 있다. vector container 기반으로 내부구조가 설정되어있다. priority_queue사용 #include 선언 priority_queue변수명; priority_queuepq; 기본 사용 pq.push(element) // 우선순위큐에 원소 추가 pq.pop() //우선순위큐에서 top의 원소를 삭제 pq.top() //top에 있는 원소를 반환 pq.empty() //비어있으면 true 아니면 false 반환 pq.size() //우선순위큐에 포함되어있는 원소들의 수를 반환 기본적으로 ..
deque container란 deque는 vector container의 단점을 보완하기 위해서 만들어진 container이다. vector와 마찬가지로 list구조. vector는 새로운 원소가 추가될 때 메모리 재할당 후 이전원소를 복사하는 방식으로쓰여 삽입,제거 시 성능이 저하되었다. 이에 deque는 여러개의 메모리 블록을 할당하고 하나의 블록처럼 여기는 기능을 제공한다. - deque는 메모리가 부족할때마다 일정한 크기의 새로운 메모리블록을 할당함으로써 이전 원소를 복사X deque 사용 #include 선언 deque변수명 dequedq; 사용 dq.front() //첫번째 원소를 참조 dq.back() //맨 마지막 원소를 참조 dq.clear() //모든 원소를 제거 dq.assign..
map container란 key와 value가 쌍으로 저장되는 노드기반 이진트리구조 container이다. 이에 반해 vector는 key없이 value만 list형태로 저장된다. key는 고유한 값이므로 중복이 불가능하다. 삽입이 되면서 자동으로 정렬된다. (defalut : 오름차순) map 사용 #include 선언 map m; //map을 key,value의 자료형으로 선언해준다. map m; 사용 m[key] = val //로 원소를 추가 또는 수정할 수 있다. m.begin() //맨 첫번째 원소를 가리키는 반복자를 리턴한다. m.end() //맨 마지막 원소를 가리키는 원소의 끝부분을 알때 사용한다. 반복자를 리턴한다. m.insert(make_pair(key,value)) //원소를 ..
메모리를 조작하는 함수로는 대표적으로 memset, memcpy, memmove, memcmp 등이 있다. 그 중 메모리를 초기화하는 memset을 알아본다. memset함수란 메모리의 내용을 원하는 크기만큼 특정 값으로 세팅할 수 있는 함수이다. memory + setting 알고리즘 문제에서는 여러 번의 케이스를 수행해야 할 경우에 배열 등을 초기화 하는데에 이용한다. #include or #include 함수 원형 void* memset(void *ptr, int value, size_t num); - ptr은 시작주소 - value는 메모리에 세팅하고자 하는 값 - num은 길이 //길이xsizeof(타입) 으로 사용하곤한다. 함수 사용 #define NUM 10 int visit[NUM] = {..
queue란 자료구조의 한가지로 FIFO구조로 데이터를 저장하는 방식 queue의 사용 #include 선언 queue변수; queueq1; 사용 q1.push(element) //큐에 원소를 추가한다. (뒤에 추가하는것) q1.pop() //큐에 있는 원소를 삭제한다 (넣은지 가장 오래된 원소를 삭제하는것) q1.front() //큐 제일 앞에 있는 원소를 반환한다 q1.back() //큐 제일 뒤에 있는 원소를 반환한다. q1.empty() //큐의 사이즈를 반환한다. pair / struct / tuple 과 같이 사용하는 방법은 아래의 링크에 같이 설명되어있다. dbstndi6316.tistory.com/30 [개념정리] deque container deque container란 deque..
stack이란 LIFO(Last In First Out) 형식의 자료구조이다. stack사용 #include 가장 최근에 스택에 추가한 항목이 가장 먼저 제거될 항목이다 선언 stack변수; stack s1; 사용 s1.push(element) // stack의 top에 element를 추가 s1.pop() //top에 있는 원소를 삭제 s1.top() //스택의 top에 있는 원소를 반환 s1.empty() //스택이 비어있으면 true 아니면 false를 반환 s1.size() //스택의 사이즈를 반환한다.
vector 란 C++ STL vector는 list계열의 container 종류이다. 자료구조의 스택과 구조가 비슷하다. vector를 생성하면 메모리 heap에 생성되며 동적할당 된다. vector 사용 선언 및 초기화 vector 변수명 vector 변수명(숫자) // 숫자만큼 벡터생성 후 0으로 초기화 vector 변수명 = {변수1, 변수2..} //벡터생성 후 오른쪽 변수값으로 초기화 vector q[] = {{변수1, 변수2}, {변수3, 변수4}) //2차원벡터 선언 및 초기화 vector변수명 //2차원 벡터 생성 Iterators 우선 vectorv; 로 선언한다. v.begin() //벡터 시작점의 주소값 반환 v.end() //벡터 끝부분+1 주소값 반환 v.[i] //벡터의 i..
tuple 이란 std::tuple로 std::pair를 확장한 자료형이다. 객체의 제한이 없이 묶을 수 있다. tuple의 사용 #include 선언 queue q1; vector v; 만들기 q1.push({1,2,3}); v.push_back({1,2,3}); // or q1.make_tuple(1,2,3); 값추출 1. tie : tuple의 복수의 타입 인자값을 추출할 수 있다. int a,b,c; //(담을 변수들을 선언) tie(a,b,c)=q1; //로 추출가능 또는 여러 벡터로 구성되어있다면 vector v; tie(a,b,c)=v[i]; 로 원하는 위치의 tuple을 추출할 수 있을것이다. 2. get : 몇 번재 타입을 얻고싶은지 선택하여 추출할 수 있다. cout