오늘 구현한 기능 던전 입장, 던전 이지, 노멀, 하드 스테이지, 던전 클리어 화면, 던전 실패 화면, 캐릭터 사망 화면, 강화 기능, 강화 선택, 강화 화면, 강화확률, 비용 구현, 스테이터스와 연동 어려웠던 점 우선 플레이어가 죽었을 때 플레이어 클래스에서 함수를 불러왔어야 했는데 인터페이스를 상속받는 플레이어 클래스 안에 그냥 함수를 선언하니 다른 클래스에서 접근이 불가능했다. 그래서 인터페이스에 함수를 다시 선언하고 상속받는 플레이어 클래스에 다시 재선언하여 구현했더니 접근이 가능해졌다. 내가 생각하기엔 인터페이스의 특징이 무조건 인터페이스 안에 있는 것은 무조건 구현해야 한다는 것인데 이것이 선언뿐만 아니라 접근할 때도 무조건 인터페이스에서 선언한것만 접근이 가능한가보다. 강화기능을 구현할 때는..
분류 전체보기
오늘 구현한 기능 인벤토리 크기 맞춤, 인벤토리 크기 정렬, 상점 구현, 상점 구매, 판매기능 구현, 아이템 장착 개선(공격과 방어 아이템은 하나만 장착 가능) 구현 하면서 어려웠던 점 아이템이 적었을 때는 단순히 배열을 하나 더 만들어서 관리 했지만 나중에 가서 다른 함수나 클래서에서 이 데이터에 접근을 하려면 for문을 이용하여 각 객체마다 고유한 값을 가지고 있었어야 됐다. 이를 해결하기 위해 기존의 배열을 삭제하고 객체 지향적으로 클래스에 프로퍼티를 추가하여 해결했다. 상점에서는 구입을 하면서 리스트에 정보값이 넘어가야 하고 구입함과 동시에 각 장비의 공격력과 방어력만큼 플레이어의 스텟을 변화시켜야 하고 상태보기와 인벤토리 관리에 모두 데이터가 연동해서 출력되야 하는 부분이 굉장히 까다로웠다. 판..
구현목록 게임시작화면, 상태보기, 인벤토리, 장착관리 게임시작화면 상태보기 인벤토리 장착관리 내일 구현해볼 기능 , 회고 어떻게 하면 더 간결하고 보기 좋게 만들 수 있는지 고민해봐야 겠다.
출처: 84. Largest Rectangle in Histogram (tistory.com) 84. Largest Rectangle in Histogram 소스 코드는 여기 있습니다. 문제는 여기 있습니다. Problem Given an array of integers heights representing the histogram's bar height where the width of each bar is 1, return the area of the largest rectangle in the histogram. Example 1: jaime-note.tistory.com 개인적으로 이 문제에 대해 질 좋은 코드와 예시가 적혀있어서 이 블로그의 코드를 참고했습니다. 문제: Largest Rectan..
다형성이란? 같은 타입이지만 다양한 동작을 수행할 수 있는 능력이다. 개념만봐서는 무슨 소린지 확실히 알 수 없다. 하지만 이러한 상속에서의 다형성을 잘 표현할 수 있는 기능이 두 가지가 있다. 그것이 바로 virtual 과 abstract 기능이다. virtual abstract 둘의 공통된 기능은 부모의 기능을 물려받아 자식 class에서 기능을 재정의 할 수 있다는 것이다. 여기서 두 기능의 차이점을 설명하자면 virtual은 메인에서 코드를 실행할 때 virtual이 사용된 부모에게 가서 자식이 재정의 돼있으면 그 기능을 사용하고 아니면 부모의 기능을 사용한다. 즉, 자식class에서 재정의가 강제되지 않는다. abstract는 기능을 상속받은 자식class는 부모의 기능을 무조건 구현해야만 한다..
시간복잡도 순서 : O(1) -> O(log n) -> O(n) -> O(nlogn) -> O(n^2) 1. O(1) print와 단순 변수 대입의 경우에 O(1)의 복잡도를 가진다. 단, 특수 케이스로 for문이 if문으로 감싸고 있다면 그건 O(n)이 아닌 O(1)로 취급한다. why? 조건에 따른 변수 대입으로 가정하기 때문이다. 2. O(logn) 예를 들어 2의 제곱을 계속 진행했을 경우 n의 값에 도달한다면 log2n, 제곱수로 목표에 도달하기 때문에 O(n)보다 훨씬 빠르다 . 3. O(n) for문이 하나가 있을 경우에 O(n)의 복잡도를 가진다. 4. O(nlogn) logn을 n번만큼 하는 복잡도, O(n^2)대신 O(nlogn)을 만들 수 있다면 엄청난 성능향상을 기..
그래프를 기반으로 하는 알고리즘은 DFS, BFS, Dijikstra등이 있다. 정해진 틀 안에서 최소 거리를 구하고싶다 = BFS(너비 우선 탐색) 최소 거리를 구하지만 가중치를 부여하여 특정한 최소 거리를 구하고 싶다 = Dijikstra(다익스트라) 모든 경로를 탐색하고 싶다 = DFS(깊이 우선 탐색)
일반적인 큐에서 값을 정렬(내림차순)하고 싶을 때 쓸 수 있는 방법이 우선순위큐다. 이 우선순위큐의 작동 방식은 이진트리의 힙알고리즘으로 진행된다. 삽입 : 가장 끝 자식 노드에 삽입 되어 부모와 자신의 값을 비교하여 크다면 올라가고 작다면 그 곳에 머무른다. 삭제: 부모노드를 먼저 pop한 후(최대값), 큐의 가장 끝 노드를 부모에 삽입 후 역으로 값을 자식과 비교하며 내려간다. 부모의 값보다 자식노드의 값이 클 경우 교체를 한다. 만약 부모노드보다 자식노드 두개가 더 클 경우 자식 노드 중 큰 값과 부모노드가 교체된다. 힙 알고리즘의 개념을 잘 알수있다면 우선순위큐의 작동방식을 이해하기 쉽다.