A* 알고리즘 A*는 다익스트라와 비슷하며 시작점과 끝점을 알고 있고 끝점으로 가기위해 가는길의 비용과 더불어 추가로 가까워질수록 추가적인 수치를 계산하면서 간다고 생각하면 된다.
트리(Tree) 계층적 구조를 갖는 데이터를 표현하기 위한 자료구조 노드 : 데이터를 표현 간선 : 노드의 계층 구조를 표현하기 위하여 사용
다익스트라 알고리즘은 그래프의 기본적인 알고리즘이라 할 수 있는데특정 정점에서 다른 모든 정점으로 가는 최단 경로를 찾아낼 수 있는 알고리즘이다.정점들은 간선에 가중치를 가지고있는데 그 가중치들의 최소비용을 계산하여 다른 노드로 이동할 때 가장 최적의 동선을 찾아주는데
오른손법칙때 사용한 미로맵 포스팅 클릭이전에 오른손법칙으로 길찾는 방법은 사실 길찾는 방법이 아니고 움직이는 방법이라 볼 수 있는데이제부터는 미로맵을 그래프로 만들고 BFS로 탐색 후 길찾는 법을 알아보자.필요한 변수 선언BFS로 미로맵을 탐색모든 미로맵을 저장했으니
BFS ( Breadth First Search ) 이전 시간에 DFS를 알아보았는데 이번 시간에는 BFS에 대해 알아보자. BFS(넓이 우선 탐색)은 정점으로 부터 탐색 할 수 있는 거리가 같은 곳은 모두 탐색한 후 다음 거리에 있는 것들을 탐색하는 기법이다.
Depth-First-Search 이름에서 부터 탐색기법이라는 것을 알 수 있는데대표적인 그래프 탐색 알고리즘 중 하나이다.그래프에서 깊이 우선적으로 탐색하는 알고리즘으로 간단히 말해서 한쪽 방향으로 탐색을 끝낸 후 다시 탐색 안한 부분으로 올라와서 또 한쪽 방향으로
후입선출 LIFO : Last in First outPush까지 실행 결과Pop까지 실행 결과data1 = 104data2 = 103Peek : 다음 Pop을 했을 때처럼 데이터를 가져올 수 있다. 다만 stack에서 삭제하지않고 데이터만 가져오는거라 Count 영향
미로에서 길찾기에서 사용 가능한 오른손 법칙을 알아보자. 어떤 미로에 갇혔을 때, 벽에 오른손을 대고 계속 가다보면 출구를 찾을 수 있다는 개념이다. 사실, 최단거리를 찾아주는 것도 아니고 그냥 길을 가는 알고리즘이라고 볼 수 있다. 이전에 했던 플레이어 임의의 이동
이전에 만들었던 맵을 바탕으로 Player 클래스를 만들고 랜덤으로 이동하는 프로그램을 만들어보자.막상 플레이어 클래스를 만들었지만 무엇을 먼저 해야하는지 감이 안잡힌다.그래서 천천히 밑에서부터 주석과 글을 참조해서 이해하자.첫번째로 해야할 것을 생각해보면 Board클
이전에 간단히 렌더링 하는 것을 해봤는데 본격적으로 Map 만드는 연습메인 함수에서 Board의 size가 25,25인 MapMazes for Programmers 책에서 나온 가장 기본적인 미로 생성 알고리즘 중 하나위에서 기본적인 맵을 기반으로 알아보려 한다.결과를
연결리스트 이해를 위해 작성생각해야할 것들1\. LinkedList2\. LinkedListNodeLinkedList를 이해하기위해 방을 비유해서 코드한 방을 기준으로 이전 방과 다음 방을 빠르게 접근할 수있다.이전에 배운것을 보자면이런식으로 Room Next나Prev
C\_data 배열의 초기 사이즈는 1로 설정한다. (빈 리스트를 만들었을 때 사이즈)Count는 데이터가 추가,삭제 될때 유동적으로 관리한다.Capacity는 실제 우리가 예약된 데이터의 개수니까 \_data의 크기랑 같을 것이다. 그러므로 \_data.Length와
프레임 관리를 코드를 통해 알아보자.마지막 시간을 측정하여 저장하는 변수 lastTick현재시간을 측정하는 변수 currentTick30FPS (1/30초) 이하면 continue로 다음 입력,로직,렌더링 실행if문에서 currentTick - lastTick 의 시
Lamda식 우리가 코드를 만들다 보면 일일이 확인하는 함수를 만든다거나 찾는 함수를 만들 때가 있는데 이러한 함수들은 찾는것에 종류등에 따라 여러개 만들어야할 수 있는 상황이 생긴다. 그래서 종류에따라 함수들을 만들면 너무 비효율적인데 이러한 상황에서 사용할 수 있는
Delegate(대리자) 코드를 작성할때 순차적으로 만들어 왔는데 상대에게 거꾸로 요청할 수 있는 상황이 빈번하게 일어나는데 이러한 일을 대리자로 처리할 수 있다. 한줄로 설명하자면, 함수 자체를 인자로 넘겨주는 방법 이라고 생각하면 된다.
C++에서는 없지만 C바로 Property라는 것인데 예를 들어 설명하자면,우리가 어떤 클래스를 만든다고 가정해보자.이런식으로 public 변수로 선언하고 코드가 복잡해지면 다른사람들과 코드를 받아서 수정해야하는 상황에서 잘못하여 변수를 건드리게 되면 어디서 바꾼지 고
이번에는추상 클래스와 인터페이스에 대해 알아보자.행위에 강요를 주는 문법이라 생각하면 된다.몬스터라면 꼭 Shout을 정의해야한다고 가정을 해보면 이걸 강제 할수있는 방법이 바로 추상 클래스를 사용하는 것이다.제약 : Monster라면 반드시 Shout 함수를 오버라이
나만의 특별한 리스트를 만들고 싶다고 가정할 때 데이터 형식을 여러가지 지원을 해줘야하는데 무식한 방법으로는 버전마다 하나씩 만들어주는 것 이런식으로 하나씩 다 만드는 것은 너무 비효율적이다. 다른 방법으로는 무엇이 있을까 ? 1.모든 타입을 다 소화할 수있는 o