"탐색"이란 그래프에 존재하는 정점들을 모두 한번씩 순회하는 것을 의미한다. [ 🌱DFS ]= Depth First Search (깊이 우선 탐색)길이 있으면 들어가고 본다 📍간단 구현 :노드 방문 여부를 따로 기록해줘야한다.재귀 함수를 활용하면 쉽게 구현할 수 있다.case 1) 인접 리스트 : case 2) 인접 행렬 : [ 🌱BFS ]= Breadth First Search (너비 우선 탐색)입구에서 가까운 순서대로 순차적으로 탐색한다.
[ 🌱동적 배열 (벡터) ] 📍size() vs capacity() :size() : 컨테이너에 들어가 있는 실제로 사용중인 데이터의 개수capacity() : 컨테이너가 수용가능한 공간의 개수clear() 이후에 size() 는 0으로 바뀌지만, capacity() 는 한번 늘어난 크기는 줄어들지 않는다. 📍resize() vs reserve() :resize() : 데이터의 개수를 변경시키기에 size 외에도 capacity도 변경시킨다.reserve() : 수용량만 변경시키기에 size에는 영향을 주지 않는다.reserve() 의 인자로 기존의 capacity보다 적은 값이 들어오면 아무런 변화가 없다.resize() 의 경우 기존의 size보다 적은 값이 들어오면 데이터의 개수를 줄여버리며 ..
[✔️자료구조 ] 📍선형 vs 비선형 : 1. 선형 구조 : 자료가 순차적으로 나열된 형태하나의 자료 뒤엔 또다른 자료가 하나만 올 수 있다.배열 / 연결 리스트 / 스택 / 큐 2. 비선형 구조 : 자료 뒤에 다수의 자료가 올 수 있는 형태트리 / 그래프 [ ✔️배열 vs 동적 배열 vs 연결 리스트 ]배열(array), 동적 배열(vector), 연결 리스트(list)는 어떤 프로그래밍 언어든 존재하는 자료구조다. 📍배열 : 처음 할당된 메모리 공간 크기를 변경할 수 없다.연속된 메모리 공간을 활용한다. → 임의접근(Random Access,RA) 가능장점 : 연속된 메모리 공간, RA단점 : 메모리 공간 크기 변경 불가 📍동적 배열 : ..
[ ✔️오른손 법칙 ] 📍오른손 법칙이란? :"우수법" 이라고 불리기도 한다.오른손으로 벽을 짚으면서 앞으로 나아간다는 의미어떤 미로에서든 통용되는 방법은 아니지만, 탈출로가 있다는게 보장된다면 어느 정도 효과 있는 방법이다. 📍구현법_이론 :case1) 현재 바라보는 방향을 기준으로 오른쪽으로 갈 수 있는가? : 오른쪽 방향으로 90도 회전 -> 앞으로 한 보 전진 case2) 현재 바라보는 방향을 기준으로 전진할 수 있는가? : 앞으로 한 보 전진 case3) 위의 두 경우 모두 불가능한 경우 : 왼쪽 방향으로 90도 회전 방향값은 열거형으로 선언하여 int 값으로 표현 할 수 있도록 함enum Dir // 반시계 방향{ DIR_UP = 0..
[ ✔️Big-O 표기법 ] 📍Big-O 표기법 사용 이유 :알고리즘의 효율 측정 기준으로 사용 📍Big-O 표기법 측정 순서 :1. 대략적인 계산 수행되는 연산의 개수를 대략적으로 판단 2. 대장만 남기기영향력이 가장 큰 대표 항목만 남기고 삭제상수 무시 (2N -> N) ex) 📍그래프 : O(n) 보다 느린 시간 복잡도를 가진 알고리즘은 "실전성"이 없다고 생각하면 된다.O(n log n) 시간 복잡도의 경우 "Sorting(정렬) 알고리즘"들이 이에 속하는데, 어느정도 사용할 순 있으나 자주 사용하지 않도록 한다. [ ✔️미로 만들기 ] 📍기본 환경 설정 : 해당 코드를 넣어 벽(WALL)과 빈공간(EMPTY)을 구분해준다. (red ..