Eat Study Love

먹고 공부하고 사랑하라

SW 만학도 72

C++ Object Oriented Programming(OOP), Overroad, Override 실습

C++과 관련된 시험에서 꼭 빠지지 않고 등장하는 것이 이 OOP 문제이다. OOP는 Class를 하나 만들어놓고, 그에 파생되는 객체를 가지고 노는 Programming이다. 이번에 해 볼 실습은, 2D Vector Class를 만들고, 해당 Class에 각 종 Operator를 Overroad 해본 뒤, OOP를 써서 Class 구현이 잘 되었는지 테스트 해보고, 2D Vector를 상속받은 Derived Class 3D Vector를 만들어 Class의 Inherit, Method의 Override를 잘 구현했는지 Test 해보겠다. 문제 풀이를 위한 Skeleton code는 아래와 같다.#include #include using namespace std;// Base class for 2D ve..

Heap Implementation [1]

Algorithm Part의 기본적인 Data Structure인 Heap에 대해서 Implementation 연습을 시작해본다. Heap의 경우 Priority Queue라고도 생각하면 되고, Max/Min Heap으로 구분된다. 특징으론 Max Heap을 예로 들었을 때, Heap Data 구조에 입력되는 Data는 크기가 큰 순서(Max)대로 우선순위를 갖은 체 저장된다. 이 말은, Heap에서 특정 Data를 꺼낼 때(Deque) 가장 크기가 큰 녀석이 추출되는 것이다. 일반적으로 우리가 아는 queue구조에서 우선 순위만 선입선출이 아닌, Data 크기에 따라 결정된다는 것을 알고 있으면 된다. 따라서, 내부에 저장된 Data를 임의로 Search 할 수는 없지만 우리가 정한 Logic( Max..

Linked list with Stack Node 문제

이번 문제는 Linked list를 C 코드로 구현하는 것인데, 특이점은 각 Node가 Stack 구조라는 것이다.즉 아래와 같이 Linked list Node가 존재한다는 것!  다시 말하면, 밖에서 봤을 땐 하나의 커다란 Stack인데 이것들이 내부에선 Linked list로 구성이 되어 있다는 것이다.문제의 조건은 아래와 같다.   1. 각 Stack Node에는 Max-capacity가 존재하다. Max-capacity를 넘어서면 새로운 Stack Node를 만든다.   2. list_size() method를 구현하라. 현재 원소가 존재하는 List Node(stack)의 개수를 반환한다.   3. push() method를 구현하라.   4. pop() method를 구현하라. 원소가 Link..

SW 만학도/C 2024.12.23

heap 자료구조 (Priority queue /Min&Max Heap) 뿌시기

Python / C / C++에서 Array / Linked List 기반으로 heap 구조를 만들어보겠다. Skeleton Code는 GPT를 참고했으며, Min/Max heap은 사실 한 끝 차이라 이 둘을 그냥 번갈아가면서 구현해보기로 한다. 1. Python - Array - Min heapclass PriorityQueueArray: def __init__(self, is_min=True): self.heap = [] self.is_min = is_min # True for min-heap, False for max-heap def parent(self, i): return (i - 1) // 2 def left_child(self, i):..

SW 만학도/C 2024.11.25

C Struct 연습

첨부파일의 코드에는 필자가 직접 연습한 것과 약간의 낙서(?)가 가미되어 있다ㅎㅎ   C에는 Python / C++의 Class와 유사하게 Struct라는 구조가 있다. 이 Struct는 Array보단 고차원의 구조로, 각 종 data type 또는 다른 Sturct type의 Variable을 member로 가질 수 있다. 하지만, fucntion을 Member 변수로 갖지 못하고 Class 상속 / Polymorphism, Instance Construct/Destruct 등 객체지향프로그래밍 즉 Oriented Object Programming을 실행하기엔 부족함이 많다. 그래도 보수적인 C Programming 영역에서 가장 고차원적인 구조이기에 연습이 필요하다. Q1.  첫 번째론 좌표평면 상에..

SW 만학도/C 2024.08.22

C programming file I/O 연습

사실 FILE I/O의 경우엔 코딩 공부를 할 때 잘 까먹기 쉽다. 왜냐하면, file I/O 할 때가 아니면 평소에 쓸 일이 없는 문법이 많기 때문이다. 그래서 종종 Remind 차원에서 file I/O를 건드려줘야 기억에 오래 남는다. 물론 그 때 그 때 인터넷 검색해서 실행해도 충분히 코딩을 할 수 있지만, 그래도 명색이 프로그래밍 공부를 하는 사람이라면 이 정도는 능숙하게 처리할 수 있어야 멋지다. 첨부된 파일에선 여러 가지 scanf + file I/O 연습을 할 수 있다. 주석처리한 부분은 나만의 낙서장(?)으로 사용된 것이라 삭제하고 코딩을 진행하면 된다. Q1.scanf 연습하는 문제다.12-hour 시간을 user로부터 입력받아 24-hour 시간으로 return해주는 코드를 짜는 것! ..

SW 만학도/C 2024.08.21

Review 11 - Dynamic Programming

https://eglife.tistory.com/123 Review 10 - Single-Source-Shortest Path in C++https://eglife.tistory.com/103 Review 9 - MST(Minimum Spanning Trees) in C++https://eglife.tistory.com/98 [Algorithm] Review 8 - Priority Queues and Heaps in C++https://eglife.tistory.com/92 [Main course!] Review 7 - Inheritance in C++https://eglife.tiseglife.tistory.com 프로그래밍 최악의 손님 DP다. 재귀적으로 진행되는 코딩은 솔루션을 펼쳐놓고 봐도 뭔 소..

Review 10 - Single-Source-Shortest Path in C++

https://eglife.tistory.com/103 Review 9 - MST(Minimum Spanning Trees) in C++https://eglife.tistory.com/98 [Algorithm] Review 8 - Priority Queues and Heaps in C++https://eglife.tistory.com/92 [Main course!] Review 7 - Inheritance in C++https://eglife.tistory.com/89 Review 5 - Special Members in C++https://eglife.tistory.com/88 eglife.tistory.comGraph의 path와 관련된 알고리즘이다. 특정 노드에서 출발하는 가장 짧은 path를 찾는..

Review 9 - MST(Minimum Spanning Trees) in C++

https://eglife.tistory.com/98 [Algorithm] Review 8 - Priority Queues and Heaps in C++https://eglife.tistory.com/92 [Main course!] Review 7 - Inheritance in C++https://eglife.tistory.com/89 Review 5 - Special Members in C++https://eglife.tistory.com/88 Review 4 - Class,Overloading,Special Members in C++https://eglife.tistory.com/87 Revieglife.tistory.com본격적으로 알고리즘의 세계에 발을 디뎠다.  1. Graph 이 장을 포함해,..

[Algorithm] Review 8 - Priority Queues and Heaps in C++

https://eglife.tistory.com/92 [Main course!] Review 7 - Inheritance in C++https://eglife.tistory.com/89 Review 5 - Special Members in C++https://eglife.tistory.com/88 Review 4 - Class,Overloading,Special Members in C++https://eglife.tistory.com/87 Review 2 - Functions and Memory Management in C++https://eglife.tistory.com/85eglife.tistory.com 이제 C++의 OOP를 위한 기본적인 공부는 끝이 났다. 이제 좀 Advanced한 영역인데, ..