원티드_언리얼RPG 2기/자료구조& 알고리즘(8)
-
연결리스트 구현, 버블정렬, 병합정렬
리스트 개념: 연결리스트 별거없다 배열과 다르게 인덱스가 아니라 포인터로 이어져있는 자료구조다.노드의 주소를 이용해서 동적으로 데이터를 저장하는 구조이다.노드에는 다음노드를 가리키는 주소와 노드에 저장된 값이 들어있다. 이중연결리스트는 이전노드를 가리키는 주소값만 추가하면된다.노드구조체에는 이전값을 가리키는 prev, 다음값을 가리키는 next, 노드가 가지는 값 value 가 들어간다.처음노드는 보통 Head라고 하고 맨뒤 노드는 Tail이라고한다. Head는 시작노드를 가리키고 맨뒤노드는 Tail을 가리킨다. 리스트의 장점: 리스트는 삽입삭제가 뛰어난 자료구조이다.배열과 다르게 메모리상에 연속된 자료구조는 아니지만 인덱스로 접근하기 때문에 삽입삭제가 쉽다. 구현한 리스트의 기능: 배열에서도 가..
2025.03.18 -
이진탐색트리
코드:#include using namespace std;// 이진 탐색 트리의 노드 구조체struct TreeNode { int key;// 노드의 값 TreeNode* left; // 왼쪽 자식을 가리키는 포인터 TreeNode* right; // 오른쪽 자식을 가리키는 포인터 TreeNode(int val) : key(val), left(nullptr), right(nullptr) {}};// BST 클래스 정의class BST {public: TreeNode* root; BST() { root = nullptr; } // 노드 삽입 함수 TreeNode* insert(TreeNode* node, int key) { if (node..
2025.03.17 -
<연결리스트> 백준 1406 에디터
작성코드 #include #include using namespace std;int main(){ string abc; int M; //입력받을 문자열의 개수 N, 명령어의 개수 M cin >> abc >> M; list alphabets; //입력받은 문자열을 리스트에 옮기기 for (char c : abc) { alphabets.push_back(c); } list::iterator it; it = alphabets.end(); for (int i = 0; i > c; switch (c) { //커서를 왼쪽으로 한칸 옮김 case 'L': if (it != alphabets.begin()) { it--; } break; case 'D': if (it != alpha..
2025.03.06 -
<배열,연결리스트> 백준 1158번 요세푸스 문제
문제접근 중간에 삽입삭제가 빈번하면 리스트가 좋을것같아서 리스트를 두개 만들어서 풀려고했다.#include #include using namespace std;int main(){ int N, K; cin >> N >> K; list numbers; list yosepus; //1~N까지 리스트에 숫자 입력받기 for (int i = 1; i cout ";} 근데 풀면서도 이렇게 풀면 배열로 푸는게 낫지않나? 싶어서 배열로 풀다가 이상한점을 발견했다. 문제에서 원형큐라는 힌트를 줬는데 큐를 쓸 생각을 미처 못했다. 그래서 원형큐를 이용하는김에 앞뒤 삽입삭제가 빠른 덱과 출력 수열을 담을 벡터를 이용했다. #include #include #include using namespace std;//원형큐..
2025.03.04 -
2주차 배열, 벡터, 연결리스트
https://share.note.sx/bt8i9cg8#ApGilAZ7dDnTTtnTTkPkFVo747ESuyukmyr3oFeNWmM https://share.note.sx/bt8i9cg8#ApGilAZ7dDnTTtnTTkPkFVo747ESuyukmyr3oFeNWmMShare Note for Obsidian 🌓...share.note.sx2주차 배열,벡터, 연결리스트 설명 ## 자료구조의 종류## 배열과 벡터##### 개념배열(Array): 메모리에서 원소를 연속적으로 배치한 고정 크기의 자료구조. 벡터(Vector): 동적 크기를 지원하는 배열과 유사한 자료구조로, ==자동으로 크기 조절 가능.==##### 배열의 성질1. 인덱스를 통해 데이터에 직접 접근할 수 있다. 2. 추가적으로 소모되는 메모..
2025.03.03 -
<덱deque> 백준 1021번 회전하는 큐
작성코드#include #include using namespace std;int main(){ //1.덱에 N개의 자연수를 채워넣는다. int N, M; cin >> N >> M; deque deq; //2.M개의 원소를 넣을때까지 반복한다. for (int i = 0; i > inputNum; //3.덱을 앞부분부터 순회해서 뽑으려는 원소가 있으면 연산 1을 수행한다. for (int k = *deq.begin(); k != *deq.end(); k++) //이터레이터는 주소값이다. +상수시간?? { //덱이 짝수개이면 8일때 4를 뽑으려면 1~4구간을 검사 (8 / 2 + 8 % 2)만큼 반복 //덱이 홀수개이면 9일때 3을 뽑으려면 1~5구간을 검사 (9 / 2 + 9 % 2..
2025.03.01