분류 전체보기
-
Bubble SortC 자료구조/Sort Basic 2020. 9. 14. 19:26
참고 문헌 구현 version1 정렬 방식은 오름 차순으로 한다. 버블 정렬은 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환하는 비교-교환 과정을 리스트의 왼쪽 끝에서 시작하여 오른쪽 끝까지 진행한다. 이러한 리스트의 비교-교환 과정(스캔)이 한 번 완료되면 가장 큰 레코드가 리스트의 오른쪽 끝으로 이동한다. 이러한 비교-교환 과정은 전체 숫자가 정렬될 때까지 계속 된다. 정렬이 안된 오른쪽 리스트를 한 번 스캔하면, 오른쪽 리스트의 오른쪽 끝에 가장 큰 레코드가 위치하게 되고, 오른쪽 리스트는 추가된 레코드를 포함하여 정렬된 상태가 된다. 이러한 스캔 과정을 정..
-
Matching System - 파티원 조직Algorithm with C/ETC 2020. 9. 12. 23:21
1. 문제 2. 문제 해결 전에 해야할 것 의 문제를 해결 하기 전에 다음과 같은 문제에 대한 답을 해보자. 아래와 같이 숫자들이 정의되어있다고 하자. 1, 4, 7, 2, 5, 8, 3, 6, 9, 10, 11 첫 번째 그룹 11 10 1 두 번째 그룹 9 8 5 세 번째 그룹 7 6 4 3 2 위와 같이 3개의 그룹이 있으며, 각 그룹에 위와 같이 값들이 저장되어있다고 하자. 그러면, 위의 그룹의 특징이 눈에 보이는가? 1그룹의 숫자 합 = 2그룹 숫자 합 = 3그룹 숫자 합 임을 알 수 있다. 각 그룹의 각 각의 합은 22이다. 그리고, 위의 숫자의 총합은 66이다. (1부터 11까지의 합이므로.) 숫자 총합 / 3 = 22 위와 같은 프로그램을 작성해보자. 힌트는 아래와 같다. ..
-
Graham ScanAlgorithm with C/Math 2020. 9. 11. 20:22
1. 정의 Graham Scan은 평면 상에서 유한한 점들의 볼록 껍질(Convex hull)을 찾는 방법이다. 자세한 사항은 아래를 참고 하자. ko.wikipedia.org/wiki/%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%97%84_%EC%8A%A4%EC%BA%94 그레이엄 스캔 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 2차원 볼록 껍질을 찾는 그레이엄 스캔의 예시 그레이엄의 스캔(Graham Scan)은 평면상에서 유한한 점들의 볼록 껍질을 찾는 방법으로, 시간 복잡도는 O(n log n)이�� ko.wikipedia.org 2. 문제 8개의 좌표를 순서대로 입력받는다. (3,1) (1 3) (2 2) (3 2) (1 2) (2 3) (1 1) (2 1)..
-
세 점의 방향 판단Algorithm with C/Math 2020. 9. 11. 10:35
벡터의 외적을 먼저 보고 오자. designatedroom87.tistory.com/103 벡터의 외적(Cross product) 1. 외적의 기하학적 정의 벡터의 외적을 한 결과값은 벡터이다. 벡터는 크기와 방향을 갖는다고 하였으므로 벡터의 외적을 한 결과 또한 크기와 방향을 갖는다. 이 방향은 벡터v1과 v2에 동시에 �� designatedroom87.tistory.com 벡터의 외적을 이용해서 세 점의 방향을 판단할 것이다. 위 그림에서 나타난 바와 같이 세 점의 방향 판단은 외적을 통해 이루어진다. 세 점의 방향을 판단하는 함수 메인 함수 및 프로그램 실행결과 프로그램 실행결과 소스 파일
-
벡터의 외적(Cross product)Algorithm with C/Math 2020. 9. 11. 00:48
1. 외적의 기하학적 정의 벡터의 외적을 한 결과값은 벡터이다. 벡터는 크기와 방향을 갖는다고 하였으므로 벡터의 외적을 한 결과 또한 크기와 방향을 갖는다. 이 방향은 벡터v1과 v2에 동시에 수직인 방향인데 오른손 법칙에 의해서 엄지손가락이 가리키는 방향이 선택된다. [그림 1] [그림 2] 2. 벡터의 성분에 대하여 외적을 정의 벡터의 외적은 결과값이 벡터이므로 성분에 대해서 나타낼 수 있다. 아래는 벡터의 성분에 대해서 외적을 정의한 것이다. [그림 3] 아래의 두 그림에 대해서는 약간의 설명이 필요한데, 점 A,B,C가 xy평면에 대해서 정의되어 있다고 가정하자. (점A,B,C의 좌표에서 z성분은 0이라고 생각하자.) 왼쪽 그림과 같이 우리 눈 쪽으로 오는 수직축을 z축의 음의 방향, 오른쪽 그림..
-
점과 점의 각도(삼각함수의 역함수를 이용)Algorithm with C/Math 2020. 9. 10. 08:32
1. 설명 위의 정보를 가지고 우리는 각도 theta를 구할 수 있다. dx와 dy를 알고 있으므로 이는 tangent함수를 이용해서 구할 수 있다. 각도는 반시계 방향을 기준으로 한다. 위의 내용으로부터 알 수 있는 사실은 dx와 dy만 구하면, 두 점에서의 각을 구할 수 있다. case1. originPos와 destPos의 x좌표와 y좌표가 모두 일치하는 경우 dx = 0, dy = 0 case2. originPos의 y좌표와 destPos의 y좌표가 일치하는 경우 (1). dy = 0, dx > 0 (2). dy = 0, dx 0 (2). dx = 0, dy < 0 case4. ..
-
API를 활용해서 삼각비를 통한 각도 구하기Algorithm with C/Math 2020. 9. 10. 07:16
직각삼각형에서의 삼각비 a는 높이, b는 빗변, c는 밑변이다. θ의 값은 어떻게 구할 수 있을까? 바로 역함수의 개념을 이용해서 구할 수 있다. 아래의 그림을 보자. 역함수의 개념을 이용해서 각도를 구해보자. 위에서 구한 각도로 우리는 어디에 쓸 것이냐가 궁금할 것이다. 플레이어와 에너미와의 각도를 구할 수 있다. 프로그램 코딩 보충설명 프로그램에서 arctan에 해당하는 함수가 atan2함수. atan2함수가 반환하는 값을 Radian변수가 이를 저장한다. 그러나, 이 과정으로 끝나지 않는다. 마지막으로, 라디언을 각도로 바꾸는 과정을 끝내야 한다. 각도와 호도법에 대한 내용은 아래에서 참고하도록 하자. designatedroom87.tistory.com/100?category=887656 각도와 호..
-