
1. 배열에 대해 바로 알고 쓴다. [ 9 ~ 10 시 ]
2. 스택에 대해 자체 제작이 가능하고 활용할 수 있다. [ 9 ~ 10 ]
3. 큐에 대해 자체 제작이 가능하고 활용할 수 있다. [ 10~ 11 ]
4. 링크드리스트 에 대해 자체 제작이 가능하고 화룡할 수 있다 . [ 10 - 11 ]
5. 더블링크드리스트 에 대해 자체 제작이 가능하고 활용할 수 있다. [ 1 ~ 2 ]
6. 재귀 함수를 바로 알고 쓴다.(활용) [ 3- 4 ]
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
배열
배열(Array)은 자료구조를 만들때 많이 쓰인다.연속적인 메모리를 타입에 따라 저장하는 자료구조의 베이스가 되는 역할을 한다. 고정적인 공간을 할당하므로, 길이가 잘 변하지 않는 경우에 사용한다.
배열의 길이가 변하는 경우에는 배열 대신 List를 사용한다.
사용 사례 ::
https://velog.io/@soyoungdl/%EC%8A%A4%ED%83%9D-%ED%81%90-%EC%82%AC%EC%9A%A9-%EC%82%AC%EB%A1%80
*배열 : 스킬 단축키- 런타임중에 추가될 일이 잘 없기때문에(이미 수가 정해진 경우) 배열을 사용해도좋다.
인벤토리, 테트리스 등..
*스택: 커맨드 패턴 - 사용자 상태/행동이 롤백되도록 함.
*큐 : 네트워크 패킷을 받아서 순서대로 관리하기 위해 사용, 오브젝트풀링, 소울라이크 게임의 스킬 선입력등을 구현할 때 활용 (다만 선입력 구현시에는 Behavior Tree를 더 추천)
List는 삭제 시 시간복잡도가 좋지 않다.
삭제 작업이 많은 경우 스택, 큐, 딕셔너리, 해시셋이 가장 빠르다.
그다음으로 > SortedDictionary > SortedSet > List를 추천한다.
알고리즘 시간복잡도 참조 사이트👍
https://www.cs.usfca.edu/~galles/visualization/

6/25 과제(1)
4by4 배열에서 블록 테트리스처럼 만들기
(16칸중 4칸색칠, 나머지 12칸은 아무것도 표시안함)
2차원 배열 활용 예시
public class Item
{
public int _itemNumber;
public int[,] tetris;
}
public class Inventory : MonoBehavior{
public Item[] items;
void Start(){
int itemNumber = -1;
//배열 요소 초기화
items = new Item[4]
{
new()
{
_itemNumber = ++itemNumber,
tetris = new int[,]{{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}}
},
new(){...}, new(){...}, new(){...}
};
//(동일한 초기화 방법)
items[0] = new Item()
{
_itemNumber = ++itemNumber,
tetris = new int[,]{{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}}
};
items[1] = new Item(){};
items[2] = new Item(){};
items[3] = new Item(){};
}
}
6/25 과제(2)
노드로 링크드리스트 구현
소스코드/캡쳐 제출
'STUDY > 자료구조' 카테고리의 다른 글
| [Python 자료구조] Linked List (0) | 2025.04.09 |
|---|---|
| [Python 자료구조] List (0) | 2025.04.08 |
| [Python 자료구조] Stack과 Queue (0) | 2025.04.02 |
| [C# 자료구조] 레드블랙트리 (0) | 2024.06.28 |
| [C# 자료구조] 링크드리스트, 더블링크드리스트 직접 작성해보기 (0) | 2024.06.26 |