알고리즘/크루스칼알고리즘
크루스칼 알고리즘 MST : Minimum spaaning tree 그래프에서 최소비용으로 모든 구간을 연결한 트리 MST의 특징 트리이기 때문에 CYCLE이 존재하면 안된다. 여러개의 답이 나올 수 있다. 크루스칼 알고리즘 < KRUSKAL > MST를 구하는 대표적인 알고리즘 시간복잡도는 O(NlogN) 여...
크루스칼 알고리즘 MST : Minimum spaaning tree 그래프에서 최소비용으로 모든 구간을 연결한 트리 MST의 특징 트리이기 때문에 CYCLE이 존재하면 안된다. 여러개의 답이 나올 수 있다. 크루스칼 알고리즘 < KRUSKAL > MST를 구하는 대표적인 알고리즘 시간복잡도는 O(NlogN) 여...
트리 (Tree) 트리 (Tree)란 노드들이 나무 가지처럼 연결된 비선형 계층적 자료구조입니다. 트리는 다음과 같이 나무를 거꾸로 뒤집어 놓은 모양과 유사합니다. 컴퓨터의 direcory구조가 트리 구조의 대표적인 예가 될 수 있습니다. 트리 구조에서 사용되는 기본 용어 노드 (Node) 트리를 구성하고 있는 기본...
목차 프로젝트 개요 개발 시스템 구성 2.1 플레이어 시스템 2.2 스탯 시스템 2.3 레벨업 및 경험치 2.4 퀘스트 시스템 2.5 인벤토리 및 아이템 2.6 상점 시스템 2.7 강화 시스템 2.8 버프 시스템 2.9 포탈 및 씬 전환 2.1...
그래프,트리 그래프란 ? 노드를 다양한 방법으로 연결하여 표현하는 자료구조 일반적으로 탐색을 하기위해선 반복문같은 프로그래밍 문법이 아니라, (DFS,BFS)알고리즘을 써야한다. 트리란 ? 가지처럼 연결되어있는 비선형 자료구조이다. #include<iostream> int main(){ int map[4][4] = {}...
Tree BFS 탐색 순서 BFS는 레벨 단위로 탐색을 한다. 즉 한 번 만에 갈 수 있는 길을 모두 탐색한후, 두 번 만에 갈수 있는 모든 길을 탐색하는 방식이다. BFS의 특징 두 노드사이의 최단경로를 탐색할때 활용하기 좋은 방식이다. 멀리떨어진 노드는 나중에 탐색하는 방식이기 때문! 큐를 활용해서 탐색할 노드의 순서를 저장하고 큐에 저...
QUEUE 큐(queue)라는 단어의 사전적인 뜻을 찾아보면, “ (무엇을 기다리는 사람·자동차 등의) 줄” 이다. 계산을 기다리는 사람들의 줄을 생각하면 이해가 쉽다. 선입선출 (FIFO : First - In - First - Out) 스택과 비교되는 큐의 중요한 특징이다. 스택에서는 가장 마지막에 들어온 데이터가 가장 먼저 나가는 후입선...
동적계획법(DP) 동적계획법 (Dynamic Programming) 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법 최적화 문제를 해결하는 알고리즘 정의 : 어떤 문제가 반복적이고 최적 하위 구조로 이루어진다고 할 때, 하위 구조에 있는 부분 문제의 답을 기반으로 전체 문제의 답을구하는 방법 최적 하위 구조 란? 전체 문제의 답이...
데이터베이스 7주차 [발표준비] 이번 주차엔, PPT자료준비 및 frontend 기능설계를 고민하였다. PPT자료준비에선 목차,프로젝트개요,사용자 요구사항정의,시스템아키텍처,기대효과및확장성,개발일정,QA순으로 구성하였으며, 조 회의에서 나왔던 사용자 요구사항정의와 사용자페르소나를 기준으로 PPT를 제작하였다. 프로젝트 개요에선 우리가 왜 이프로젝트를...
데이터베이스6주차 이번 주차에는 지난 설계 기반으로 실제 코드를 구현해보는 데 집중하였다. 특히 백엔드 구조 통합 실험을 위해 Flask를 중심으로 MySQL과 MongoDB를 동시에 연결하고, 사용자 활동 로그를 실제로 저장하고 불러오는 전체 API 흐름을 작성하였다. Flask 프로젝트 구조는 app.py를 중심으로, MySQL ORM은 SQLA...
데이터베이스5주차 지난주에 이어, 이벤트 기반 비동기 로그 처리 아키텍처의 성능 및 신뢰성 확보 방안으로서 메시지 큐 시스템의 도입 필요성을 확인하였다. 이번주엔, Flask 기반 백엔드에 도입 가능한 RQ와 kafka를 비교하고, 실무 적용 가능성과 장단점을 정리하였다.우선, RQ는 Python 기반의 단순한 작업 큐로, Flask와의 통합이 쉽고...
Player Code using UnityEngine; public class Player : MonoBehaviour { // -- components -- Rigidbody2D rb; public float maxSpeed; public float animAccel = 5f; SpriteRenderer sp...
깃허브블로그 포트폴리오 링크입니다. 해당링크는 깃허브 레포지트로 연결됩니다. → https://github.com/privateeye98/portfolio/blob/main/README.md
그리드 알고리즘 눈앞의 이익만을 추구하는 알고리즘 미리 정한 기준에 따라 매번 가장 좋은 선택만 취하는 알고리즘 여러 경우 중 하나를 결정해야 할 때마다 그 순간이 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달하여 해결함. 각 선택의 시점에서 이루어지는 결정은 지...
데이터베이스4주차 이번주차에선 데이터 불일치 및 동기화 문제를 다룰 예정이다. 용자가 회원가입을 시도할 때 MySQL에 사용자 정보가 저장되지만, 동시에 MongoDB에 활동 로그 삽입이 실패할 경우 시스템의 신뢰성과 일관성이 깨질 수 있다. 이는 관계형 DB와 비관계형 DB를 혼합 운용할 때 흔히 발생할 수 있는 문제다. 연구 목표는 데이터 불일...
sort() 사용법 sort함수는 배열의 원소들을 정렬할 때 사용하며, 기본적으로 오름차순으로 정렬한다. sort()함수를 사용하기 위해서는 ** 헤더파일을 include** 시켜줘야 한다. sort(배열의 시작 주소, 배열의 마지막 주소+1) ; sort(배열의 시작 주소, 배열의 마지막 주소+1, desc) ; 이렇게 sort()내에서...
데이터베이스3주차 3주차에선 두 DB간 데이터 일관성 유지 및 동기화 방식에 대해 연구했다. 두 개의 DB를 병행하면 한쪽에 데이터 변경이 발생했을 때, 다른 한쪽과 “데이터 불일치” 가 생길 수 있다. 사용자 가입 시 MySQL에 사용자 레코드는 생성이 완료 되었지만, MongoDB에 로그 삽입이 실패하면 처리의 관한 문제가 생길 수 있습니다.관계...
두 번째 주차에서는 백엔드 Flask API에서 MYSQL과 MongoDB를 함께 사용하는 구조를 설계 이후, 이를 기반으로 사용자 활동로그 및 AI학습 피드백 로그를 저장할 방안을 구체화 할 예정이었다. MongoDB에 저장될 document 구조의 초안을 작성한 후, 노트에 저장 및 검색 방법을 탐색하였다.병행하여, Flask에서 두가지 DB를 병...
캡스톤디자인 9조로, 학습 AI의 개발 내용 중 백엔드, 프론트엔드,python(flask). DB 중 DB를 맡게 되었다. 첫 번째로 DB를 다뤄본 적이 극히 드물기 때문에, 먼저 어떤 타입의 DB를 쓰는지가 중요했던 것 같다. 먼저 고려해야 하는 것은, 관계형 DBMS를 사용을 해야 할지, 비관계형 DBMS을 사용할지의 대해 생각을 해보았고, ...
프로젝트 목표 해당 프로젝트는 로그라이크 액션 게임 “Skull”스타일의 개인프로젝트를 위해 제작된다. 게임의 목표는 하나의 스테이지(프로토타입 맵)를 만들어서 클리어 시키는형식 대상 사용자 점점 PC를 사용하는 나이대가 높아지고있다. 또한, 어린 젊은층(10대~20대초반)은 PC를 사용하는것보다 스마트폰으로 즐기는 비율이 점점 높아지고 있으나,...
약 3달안에 프로젝트를 끝내보려고한다. 타일맵을 찍는것에 너무 큰 시간을 투자하지 않으려고하며, 기능만 구현 후 프로젝트를 마무리하려고합니다. 개인프로젝트더라도, 소프트웨어정의,사용자정의 등 모든 과정을 담아보려고하며, 기능 구현에 최대한 많은 설명과 방법을 제공해보려고합니다. 코드작성의 방법은 매우 많으며, 다른 프로그래머분들이 작성하신 코드를 참...
알고리즘[중간고사정리] 분할정복 알고리즘 정렬 알고리즘 점근적 분석 가이드 —> 루프 or 중복루프 루프 → 루프의 수행시간은 구문 수행시간 x 반복 횟수 = 최대값 루프의 경우 // 루프의 경우 for(i=1; i<=n; i++) m=m+2; //일정한 시간, c 전체 시간 = 상수 c × n = cn = O(n)...
5월 1일 부터 Unity로 개발을 시작합니다. 장르는 딱히 정해져있지 않지만, 우리가 소위 말하는 운영자맵을 만들어볼까합니다. 선택의 이유는 많은 기능을 한 맵에 넣어 구현을 해야하고, 게임의 완결성 보다, 기능의 집중도를 높이기 위해서 결정하였습니다. 4월 18일부터 ~ 28일까지는 학교 중간고사 일정이므로 업로드가 없거나 적을 수 있고, 5...
중간고사 요약 [시험 예상 정리 요약집] 알고리즘의 특성 정확성 수행성 유한성 효율성 알고리즘의 표현 의사코드 흐름도 문제해결 방식에 따른 분류 분할정복 알고리즘 → 주어진 문제의 입력을 분할하여 문제를 해결하는 방식 탐욕 알고리즘 → 매 선택에서 해당 순간에 가장 최적인 답을 선택하여 문제를 해결...
자료구조 자료구조란? 자료를 효율적으로 사용하기 위해 자료의 특성에 따라 분류하고 구성하며 저장 및 처리하는 모든 작업 자연어 사람 ↔ 사람의 의사소통 수단 프로그래밍 언어 사람 ↔ 컴퓨터의 의사소통 수단 프로그램 - 명령문의 집합 프로그램 개발 과정 문제 요구 사항을 정확히 기술 문제 분석 알고리즘 작성 프로그램 ...
알고리즘 [ 합병정렬 ] 입력이 2개의 부분 문제로 분할되고, 부분 문제의 크기가 1/2로감소하는 분할 정복 알고리즘 == 결국, 합병 과정이 문제를 정복하는 것 합병 → 2개의 각각 정렬된 숫자들을 1개의 정렬된 숫자로 합치는 것 입력 크기가 n=8인 배열 A=[37, 10, 22, 30, 35, 13, 25, 24]에 대하여...
게시글의 순서가 올바르지 않을수 있습니다. 블로그를 이용하시는 사용자께서는 왼쪽 카테고리란에서, 선택하여 아래부터 읽으면서 학습하시면 읽기 편합니다. 간혹 오류나 틀린 부분이 있다면 -> makeurselfff@gmail.com 으로 문의주시면 확인 후 처리하겠습니다. 자료구조 + 알고리즘 , 단독 알고리즘 , 단독 자료구조로 올라가기...
알고리즘 [ 선택정렬 ] 정렬되지 않은 전체 자료 중에서 해당 위치에 맞는 자료를 선택하여 위치를 교환하는 정렬 입력 배열 전체에서 최솟값을 전택 배열의 0번 원소와 자리를 바꾸고 다음엔 0번 원소를 제외한 나머지 원소에서 최솟값을 선택하여, 배열의 1번 원소와 자리를 바꿔가며 정렬 마지막에 2개의 원소중 최솟값을 선택하여 자리를 바꿈...
LV03 DAT,HT(해시테이블) 패턴찾기 1. Direct Address Table Direct address table은 키 값을 배열의 인덱스로 환산해서 데이터에 접근하는 자료구조이다. Direct address table은 키 K가 테이블 SLOT T[K]에 저장되기 때문에, 테이블의 크기는 전체 키 [U]개수가 된다. direct ad...
알고리즘 들어가기전, 문제를 해결하기 위한 단계적 절차를 갖는 여러 동작들의 모임 → 문제 해결 과정을 묘사하는 것 일을 처리하기 위한 일련의 과정을 기술하는 방법(단계적인절차에 따라 주어진 문제의 답을 찾아가는 과정) 해결하고자 하는 문제에 항상 보다 효율적인(적합한)알고리즘을 사용하는것이 매우 중요 → 생각하는 방법을 훈련하는것 알고리즘의...
LV02 디폴트 생성자(default constructor) 디폴트 생성자는 매개 변수의 초기값을 미리 정의해두는것을 의미한다. 만약 객체선언 후 초기값을 제시하지 않으면 자동적으로 프로그램상에서 제공한다. 클래스에서 생성자가 정의되지 않았을 때만 제공한다. 이전 문서에서 생성자 선언, 소멸자 선언을 제공했으니, 소멸자,생성자는 이전 문서를 참...
LV01 클래스와 구조체 클래스는 추상자료형을 사용하기 위한 표현방법이다. 원래 우리들이 공부했던 자료형 int,char,boolean과 같은 것들을 기본 자료형이라고한다. 플레이어가 탑승하는 경주하는 자동차게임이 있다고 생각을 해보자. 만약 플레이어가 2명이라고 하면 우리는 기본코딩을 아래와 같은 방법으로 해주어야 했을것이다. 이것을 하...
#include<iostream> #include<vector> #include<algorithm> #include<list> #include<string> #include<map> using namespace std; char parent[256] = {}; int group = ...
들어가기에 앞서 들어가기 앞서, 해당 내용은 OVERFLOW,C언어로 쉽게 풀어쓴 알고리즘, 자료구조 책을 참고하여 제작한것으로,만약 본문에 오류가 있다면,언제든 [makeurselfff@gmail.com](mailto:makeurselfff@gmail.com) 으로 문의 주시면 감사드리겠습니다.