전체 글 23

22일 차 : 과제 3, 4, 5 번과제 팁 ~ 팀 프로젝트 진행 팁

3번 과제 (이삭 튜터님, 제출용)더보기//3번 과제 (이삭 튜터님)#include #include using namespace std; template class SimpleVector { private: T* data; int currentSize; int currentCapacity; void release() { delete[] data; data = nullptr; } public: SimpleVector() { data = new T[10]; currentSize = 0; currentCapacity = 10; } SimpleVector(int capacity) { data = new T[capacity]; currentSize = 0; currentCapacity = capacity; ..

카테고리 없음 2025.06.13

22일 차 : C++ 변수선언 읽는 법 ~ 단계별 프로시저 실행, 단축키 등

베이직 반 공부 내용 정리수업 내용 들으면서 정리한 내용더보기// Right - Left Rule// 변수명을 기준으로 오른쪽 부터 읽기 Animal* animal // animal is pointer to Animal// 읽을게 없거나 가는 방향에 닫는 괄호가 나오면 왼쪽 Left 로 읽// 코드섹션에 내용이 명령서 같은거고 그게 컴파일 되서 메모리에 할당하는건가?int Array01[10]; // 데이터 섹션 void addAnimmal(void){int Array02[10]; // 스택메모리int* PtrToArray03 = new int();PtrToArray03 = Array02; // PtrArray03 힙 메모리}// 스택프레임 : 60프레임, 호출을 1초에 60번 씩, 그렇기에 호출비용 최..

카테고리 없음 2025.06.12

21일 차 : 알고리즘 강의 ~ HW03

알고리즘 강의 시간 복잡도 : 주어진 문제를 해결하는 데 얼마나 많은 연산이 필요한지 정량적으로 나타낸 것상수 시간로그 시간선형 시간선형 고르 시간제곱 시간지수 시간공간 복잡도 : 주어진 문제를 해결하는 데 필요한 메모리 공간의 양을 정량적으로 나타낸 것 인덱스 : 데이터 구조 내 특정 요소의 위치를 식별하는데 사용되는 숫자 (값) 배열 : 동일한 타입 데이터를 메모리의 연속적인 공간에 저장하는 자료 구조 링크드리스트 : Linked List, 노드 연결로 이뤄진 자료 구조단일 링크드 리스트이중 링크드 리스트원형 링크드 리스트 스택 : Stack, 선입후출 방식. 나중에 삽입된 요소가 가장 먼저 제거된다탑 : 스택의 가장 위에 있는 포인터, 인덱스푸쉬 : 스택 가장 위에 새로운 요소를 삽입하는 연산팝 ..

카테고리 없음 2025.06.11

20일 차 : C++ 복습 ~ 옵저버 패턴

베이직 내용 복습 (함수, 연산자)자료형 : Type : 저장과 관련된 개념, 값을 저장하고 분류하는 용도.char, short int, int, long int, long long int, float, double, long double 함수 선언반환자료형 함수명 (매개변수자료형 매개변수명); 함수 정의반환자료형 함수명 (매개변수 자료형 매개변수명) { return 반환값; }{} : 중괄호가 있으면 함수 정의, 없으면 선언; : 세미콜론 줄 마무리 시 선언더보기 함수 정의 (Function Definition) 예시 #include // 표준 입출력을 위한 헤더 파일 (C 스타일) int calculateSum(int x, int y) // 예시: 'calculateSum'이라는 이름의 함수 정의/..

카테고리 없음 2025.06.10

19일 차 : 알고리즘 강의 ~ 디자인 패턴

알고리즘 강의 3일 메모리 주소- PC RAM 에서 데이터를 저장하는 고유한 위치 식별 번호 변수 선언- 데이터에 이름 부여, 데이터를 저장할 메모리 공간을 확보하는 과정. (타입, 이름 지정) 포인터- 메모리 주소를 저장하는 변수int* : 포인터 변수 선언&val : 주소 연산자, 메모리 주소를 반환한다. 포인터와 배열 관계- 배열 이름이 첫번째 값의 주소를 나타내는 포인터 상수처럼 동작한다. 정적 배열 : 컴파일 할 때 크기가 결정되는 배열. 메모리에 고정된 크기로 할당됨동적 배열 : heap 메모리 영역에 크기를 결정 후 할당하는 배열. new 연산자를 사용하고 delete[] 로 해제함 참조자, 포인터의 차이더보기int arr[] = {10, 20, 30, 40, 50};int* ptr = a..

카테고리 없음 2025.06.09

18일 차 : STL ~ 메서드 find() / 1주차 과제

더보기벡터 마지막 원소를 제거하기- pop_back 으로 배열의 마지막 원소를 제거하고 for 문으로 배열 내 있는 모든 숫자를 출력한다. #include #include using namespace std; int main() { vector vec = { 10, 20, 30 }; vec.pop_back(); cout for (int num : vec) { cout } return 0; }벡터 현재 크기를 확인하는 방법- 처음 가지고 있는 숫자 확인, push_back 으로 40 추가, pop_back 으로 가장 마지막 수 삭제. #include #include using namespace std; int main() { vector vec = { 10, 20, 30 }; cout vec.pus..

카테고리 없음 2025.06.05

17일 차 : 템플릿 ~ Git 과 PC 연동하기

템플릿 타입네임 T template 템플릿은 자료형 data type에 구애받지 않고 동작한다.더보기두 값을 더하는 함수 (템플릿)- 템플릿은 미리 만들어둔 함수처럼 동작한다. 정수와 실수 모두 템플릿 하나로 할 수 있다. #include using namespace std; template T add(T a, T b) { return a + b; } int main() { cout cout return 0; } 두 값중 큰 값을 반환하는 함수 (템플릿)- (a > b) ? a: b 설명 : - 문자열은 알파뱃 사 순서상 먼저 오는 알파뱃을 큰 값으로 보고 반환한다. #include #include using namespace std;template T getMax(T a, T b) { retu..

카테고리 없음 2025.06.04

16일 차 : weak ptr ~ 템플릿

weak_ptr : 레퍼런스 카운트를 증가시키지 않는 약한 참조방식으로 동작하는 스마트 포인터.lock() 호출 후 반환된 shared_ptr 이 유효한지 확인 후 사용 더보기lock() 함수로 유효성 확인 후 weak_ptr 사용하는 예시 #include #include class A { public: void say_hello() { std::cout } }; class B { public: std::weak_ptr a_ptr; void useA() { if (auto a_shared = a_ptr.lock()) { a_shared->say_hello(); } else { std::cout } } }; int main() { std::shared_ptr b = std::make_shared()..

카테고리 없음 2025.06.02

15 일 차 : 배열의 평균 ~ Shared 포인터

배열의 평균 구하기 #include #include using namespace std; double solution(vector arr) { double answer = 0; if(arr.empty()) { return 0; } long long sum = 0; for (int i = 0; i sum += arr[i]; } answer = static_cast(sum) / arr.size(); return answer; } 초기화 및 예외 처리double answer = 0; - 최종 평균값을 answer 에 저장할 변수, 초기 설정 0.if(arr.empty())- 배열이 비어있는지 확인하는 함수, 배열..

카테고리 없음 2025.05.30