쿼드트리
·
알고리즘
쿼드트리란?2차원 공간을 재귀적으로 네 영역으로 분할하여 관리하는 계층적 자료구조1 . 최대 깊이2. 객체가 네 자식영역 중 하나에 완전히 포함되는지 확인3. 포함되면 해당 영역을 또 분할하고 객체를 자식 노드로 내려보냄4. 여러 자식 영역에 걸쳐있음녀 객체를 현재 노드에 저장더이상 분할하지 못하면 멈춤쿼드 트리의 주요 연산삽입삭제범위 검색검색 영역하고 충돌할 노드들만 충돌판정 진행멀리 떨어져있는 애들은 검사할 필요없으니겹치는 노드들만 충돌 판정하거나 범위 검색검사를 줄이는데 사용한다영역을 다룰때 최적화를 하는것.필터링하려고최적화에대해 알아두라, 많은 계산을 해야하는데 계산을 줄이거나 건너뛰는 방법이 최적화쿼드트리 특징각 노드는 하나의 사각형 영역을 담당노드를 분할하면 네 개의 자식노드가 생성(균등 분할..
A* 알고리즘
·
알고리즘
A*알고리즘시작 지점에서 목표 지점까지 이동하는 경로를 찾는 탐색 알고리즘게임 캐릭터 이동, 로봇의 경로 탐색, 네비게이션 등에서 활용A* 는 지금까지 실제로 이동한 비용과 목표까지 남았다고 예상하는 비용을 함께 사용하여,이를 통한 불필요한 방향의 탐색을 줄이는 탐색A* 속도적인 측면에서도 좋고,, 최단경로를 빨리 구할 수 있도록 하는 알고리즘이 많이 등장함A*에서 사용하는 비용g(n) : 시작 노드에서 현재 노드까지 실제로 이동한 누적 비용h(n) : 현재 노드에서 목표 노드까지 남았다고 추정한 비용f(n) : 해당 노드를 거쳐 목표까지 이동할 것으로 예상되는 전체 비용f(n) = g(n) + h(n)Open 목록, Closed 목록A* 에서는 탐색할 노드를 관리하기 위해 2개의 목록을 사용Open 목..
다익스트라 알고리즘
·
알고리즘
다익스트라 알고리즘하나의 시작 노드에서 다른 모든 노드까지의 최단 거리를 구하는 알고리즘간선의 가중치에 음수가 없는 그래프에서만 사용 가능원리현재까지 발견한 경로 중 가장 거리가 짧은 노드부터 확정시작 노드의 거리를 0으로 설정하고 나머지 노드의 거리는 무한대 INF 로 설정함아직 처리하지 않은 노드 중 거리가 가장 짧은 노드를 선택선택 노드를 중간 경유지로 하였을 때, 기존에 알던 거리보다 더 짧은지 확인더 짧은 경로를 발견하면 최단 거리 갱신모든 노드 반복우선순위 큐를 사용하는 이유매번 최단 거리가 가장 작은 노드를 찾아야함최소 힙 우선순위 큐를 사용하면 가장 가까운 노드를 꺼낼 수 있따.priority_queue, vector>, greater> pq;pair 에는 {거리, 노드 번호} 값을 저장,..
복사 생성자
·
C++
복사 생성자란?생성자를 호출하는 객체와 동일한 타입의 객체를 인자로 전달받아, 전달받은 객체와 동일하게 객체를 구성(=복사)하는 생성자class Player{public:Player(){ std::cout 실행결과Player() callPlayer(int number) callPlayer(const Player& other) call생성자 오버로딩생성자는 매개변수의 형태에 따라 오버로딩할 수 있다.생성자 오버로딩 : 매개변수의 개수나 타입이 다른 생성자를 여러 개 정의객체를 생성할 때 전달한 인수에 맞는 생성자가 호출된다.Player player3(player2) : 같은 타입의 객체를 전달하여 복사 생성자를 호출한다.복사 생성자같은 타입의 기존 객체로 새 객체를 초기화Player(const Pla..
포인터와 레퍼런스
·
C++
포인터란?메모리 주소를 저장하는 변수일반 변수는 값이 저장된다면, 포인터 변수는 다른 데이터가 위치한 메모리 주소를 저장할 수 있다.아무 주소도 기리키지 않는 포인터는 nullptr로 초기화void* 는 데이터 타입을 지정하지 않은 범용 포인터, 역참조는 타입 몰라서 불가역참조란? 포인터에 저장된 메모리 주소를 따라가, 주소에 저장된 실제 값에 접근주소도 하나의 데이터, 주소를 변수에 저장할 수 있다. 그래서 메모리 주소를 저장하는 변수가 포인터number주소: 0x1000값: 10pointer주소: 0x2000값: 0x1000 │ └────────→ number역참조저장된 주소를 이용해서 그 위치에 있는 데이터에 접근 가능int number = 10;int* pointe..
[Review] 그림으로 이해하는 AWS 구조와 기술
·
기타/Review
AWS는 많은 서비스들이 있다. 나는 AWS와 RDS만을 주로 사용하여서 다른 서비스들과 AWS에대한 놓친 개념이 있는지 알고 싶어서 길벗 책 리뷰이벤트에 참여하게 되었다. 책을 처음 딱 받았을 때 생각보다 아담한 책이었고 간단하게 보기 좋겠다 라는 생각을 하였다. 글 중간중간에 설명에 대한 그림이 있어서 헷갈리는 부분을 쉽게 이해할 수 있었다. 이 책은 AWS가 무엇인지, 어떠한 서비스를 제공하는지, AWS의 주요 서비스를 설명하면서 각 서비스들의 사용요금을 설명해주고 있기 때문에 AWS를 처음 접하는 사람에게 적합한 책이다. 설명 뒤에 그림이 참조 되어있어서 책에서 설명하는 구조가 눈에 잘 들어왔다. 나는 처음 AWS에 무지한 상태로 EC2와 RDS를 사용하여 프로젝트를 진행하는 도중에 AWS 서비스..