분류 전체보기
-
KD 트리 알고리즘프로그래밍 기초/알고리즘 2021. 11. 18. 18:51
KD 트리 이진 검색 트리를 다차원 검색 트리로 확장한 트리 자료구조이다. KD 트리는 같은 레벨의 노드는 동등한 위치의 필드를 사용하여 분기를 진행하며 k 개의 필드를 가지는 KD 트리에서 레벨 k에 도달한 경우 다시 0 번째 필드를 사용하여 분기를 진행한다. ※ 다차원 검색 트리는 노드의 키가 하나의 필드가 아닌 여러 개의 필드로 이루어진 검색 트리를 말한다. KD 트리에서의 검색 기본적으로 이진 검색 트리와 동일한 방식으로 탐색을 진행하나 KD 트리는 각 레벨 별로 다른 필드를 사용하여 검색을 진행하는 점이 다르다. 레벨 0 에서는 첫 번째 필드를 사용하여 분기하고 레벨 1에서는 두 번째 필드를 사용하여 분기를 진행한다. 이렇게 진행하다 레벨 k 에서는 다시 첫 번째 필드를 사용하는 방식으로 검색을..
-
유니티 화면 비율 고정 처리...19일지 2021. 11. 17. 23:48
화면 조정 시 위치 바뀌는 버그 수정 시도 이전에 발생한 버그를 수정하기 위해 코드를 이것저것 수정해보고 있었는데, 일단 의심되는 건 WinProc을 교체하려고 했으나 교체되지 않고 기존 것에 추가로 적용이 되는 게 아닐까 하는 생각이 든다. 그래서 변경 전 크기, 위치와 변경 후 크기, 위치가 각각 전달되면서 문제가 되는 게 아닐까 싶다. 관련해서 서브 클래싱에 대한 정보를 찾게 되었는데 내용은 다음과 같다. 창 프로시저 사용 - Win32 apps | Microsoft Docs 창 프로시저 사용 - Win32 apps 이 섹션에서는 창 프로시저와 관련된 다음 작업을 수행하는 방법을 설명합니다. docs.microsoft.com 베이비들의 블로그 (zum.com) 서브클래싱 서브클래싱이란 쉽게 말해 윈..
-
알고리즘...85일지 2021. 11. 17. 20:31
KD 트리의 삽입과 삭제 KD 트리는 검색 과정을 통해 리프 노드에 도달한 경우 왼쪽 혹은 오른쪽 자식으로 새로운 노드를 삽입하면 된다. 삭제의 경우 이진 검색 트리와 달리 자식이 하나인 경우에도 자식이 두 개인 경우와 마찬가지로 처리해 줘야 한다. 이는 단순히 상위 레벨로 노드를 올리게 된다면 사용하는 필드가 달라져 속성이 깨지기 때문이다. 삭제 시 노드가 두 개인 경우, 오른쪽 서브 트리에서 삭제할 노드에 사용된 필드의 값이 가장 작은 노드를 찾아 삭제할 노드와 교환하고 찾은 노드를 삭제한 뒤, 말단 노드가 아닌 경우 삭제 과정을 반복하면 된다. 더보기 참고문헌 한빛아카데미.문병로.(2016.07.24).쉽게 배우는 알고리즘
-
JUNGOL...162일지 2021. 11. 17. 20:21
Intermediate_Coder/백트래킹-DFS/장기 문제 N×M장기판에 졸 한개와 말 한개가 놓여 있다. 말의 이동 방향이 다음과 같다고 할 때, 말이 최소의 이동횟수로 졸을 잡으려고 한다. 말이 졸을 잡기 위한 최소 이동 횟수를 구하는 프로그램을 작성해보자. 입력 형식 첫 줄은 장기판 행의 수(N)와 열의 수(M)를 받는다(1≤N, M≤100). 둘째 줄은 말이 있는 위치의 행(R), 열(C)의 수와 졸이 있는 위치의 행(S), 열(K)의 수를 입력받는다. 단, 장기판의 제일 왼쪽 위의 위치가 (1,1)이다. 각 행과 열은 R(1≤R≤N), C(1≤C≤M), S(1≤S≤N), K(1≤K≤M)이다. 출력 형식 말이 졸을 잡기 위한 최소 이동 횟수를 출력한다. 입력 예 9 9 3 5 2 8 출력 예 2..
-
JUNGOL...161일지 2021. 11. 16. 21:13
Intermediate_Coder/백트래킹-DFS/장기 문제 N×M장기판에 졸 한개와 말 한개가 놓여 있다. 말의 이동 방향이 다음과 같다고 할 때, 말이 최소의 이동횟수로 졸을 잡으려고 한다. 말이 졸을 잡기 위한 최소 이동 횟수를 구하는 프로그램을 작성해보자. 입력 형식 첫 줄은 장기판 행의 수(N)와 열의 수(M)를 받는다(1≤N, M≤100). 둘째 줄은 말이 있는 위치의 행(R), 열(C)의 수와 졸이 있는 위치의 행(S), 열(K)의 수를 입력받는다. 단, 장기판의 제일 왼쪽 위의 위치가 (1,1)이다. 각 행과 열은 R(1≤R≤N), C(1≤C≤M), S(1≤S≤N), K(1≤K≤M)이다. 출력 형식 말이 졸을 잡기 위한 최소 이동 횟수를 출력한다. 입력 예 9 9 3 5 2 8 출력 예 2..
-
알고리즘...84일지 2021. 11. 16. 20:40
KD 트리 개요 KD 트리는 이진 검색 트리를 확장한 것으로 k 개의 필드로 이루어진 키를 사용하며, 이진 검색 트리와 비슷하게 동작 하나 레벨 별로 분기 시 하나의 필드만을 사용한다는 점이 다르다. 위 그림에서 보는 것처럼 KD 트리는 같은 레벨의 노드는 동등한 위치의 필드를 사용하여 분기를 진행하며 k 개의 필드를 가지는 KD 트리에서 레벨 k에 도달한 경우 다시 0 번째 필드를 사용하여 분기를 진행한다. 더보기 참고문헌 한빛아카데미.문병로.(2016.07.24).쉽게 배우는 알고리즘
-
JUNGOL...160일지 2021. 11. 15. 14:11
Intermediate_Coder/백트래킹-DFS/장기 문제 N×M장기판에 졸 한개와 말 한개가 놓여 있다. 말의 이동 방향이 다음과 같다고 할 때, 말이 최소의 이동횟수로 졸을 잡으려고 한다. 말이 졸을 잡기 위한 최소 이동 횟수를 구하는 프로그램을 작성해보자. 입력 형식 첫 줄은 장기판 행의 수(N)와 열의 수(M)를 받는다(1≤N, M≤100). 둘째 줄은 말이 있는 위치의 행(R), 열(C)의 수와 졸이 있는 위치의 행(S), 열(K)의 수를 입력받는다. 단, 장기판의 제일 왼쪽 위의 위치가 (1,1)이다. 각 행과 열은 R(1≤R≤N), C(1≤C≤M), S(1≤S≤N), K(1≤K≤M)이다. 출력 형식 말이 졸을 잡기 위한 최소 이동 횟수를 출력한다. 입력 예 9 9 3 5 2 8 출력 예 2..
-
알고리즘...83일지 2021. 11. 15. 14:00
다차원 검색 트리 데이터를 검색하기 위한 키가 여러 개로 이루어진 검색 트리를 말하며 다음과 같은 종류가 존재한다. KD 트리 이진 검색 트리를 확장한 것으로 검색에 두 키 중 하나의 키만 사용한다. KDB 트리 B 트리를 확장한 것으로 루트 노드에서 부터 전체 공간을 쪼개가면서 검색을 진행한다. R 트리 B 트리를 확장한 것으로 KDB 트리와 달리 키를 포함하는 최소 영역에만 노드가 존재한다. 더보기 참고문헌 한빛아카데미.문병로.(2016.07.24).쉽게 배우는 알고리즘