1. 알고리즘 + unordered_map
unordered_map
- map보다 더 빠른 탐색을 위한 자료구조(map은 이진탐색 O(logN), unordered_map은 해쉬테이블 O(1))
#include<unordered_map>
unordered_map<int, int> m;
- 순서대로 자료를 보관하지 않음(해시 테이블을 사용해 key의 순서를 유지하지 않음)
- [key, value] 쌍으로 자료 저장
- key는 해시함수에 의해 해시테이블(배열)의 index로 변해 저장됨(충돌시 체이닝기법으로 저장)
- 해시테이블은 배열기반이기 때문에 key값만 알면 value를 바로 찾을 수 있음 -> O(1)보장
- Hash Map이라고도 부름 (hash_map이라는 컨테이너가 따로 있지만 표준이 아니고 성능이 보장되지 않음)
- 데이터가 많을 때 사용, 데이터가 적을 때는 vector나 list를 사용하는 것이 더 빠름
operator[] : key를 통해 value를 지정
++um[key]; : key의 value를 ++
um.insert(make_pair(key, value));
https://ppang-game.tistory.com/75
백준 10816번 숫자 카드 2 C++
unordered_map 사용 코드 #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n = 0; cin >> n; unordered_map um; int card = 0; for (int i = 0; i < n; ++i) { cin >> card; ++um[card]; } int m
ppang-game.tistory.com
2. 유니티 C# 스크립팅 마스터하기 + 따로 알아본 내용
PropertyAttribute 클래스를 상속해 특성 클래스를 만들 수 있다.
특성 클래스는 일반적인 클래스가 아니기 때문에 인스턴스화하면 안 된다.
PropertyDrawer 클래스
- 일반적인 특성을 이용해 다양하게 태그된 모든 변수들이 인스펙터에 그려지는 모습을 사용자화할 수 있게 해준다.
프로퍼티Property: 속성이라는 뜻으로, get set 접근자를 가짐
private로 선언한 변수를 사용하기 위해 get set메소드를 구현해야 했었다.
class Test{
private int age;
public int GetAge(){retrun age;}
public void SetAge(int num){age = num;}
}
프로퍼티를 사용하면 public 멤버 변수 처럼 접근할 수 있다. - 실제로 public 접근자가 아닌 특수 메서드 이다.
프로퍼티를 통해 데이터에 쉽게 접근할 수 있고 안정성과 유연성을 올릴 수 있다.
class Test
{
private int age;
public int Age
{
get{ return age; }
set{ age = value;}
}
}
'내일배움캠프(Unity)' 카테고리의 다른 글
내일배움캠프 게임개발(Unity) 사전캠프 7일차 TIL - 게임개발종합반 시작 (1) | 2023.10.10 |
---|---|
내일배움캠프 게임개발(Unity) 사전캠프 6일차 TIL (0) | 2023.10.06 |
내일배움캠프 게임개발(Unity) 사전캠프 4일차 TIL (0) | 2023.10.04 |
내일배움캠프 게임개발(Unity) 사전캠프 3일차 TIL (1) | 2023.09.27 |
내일배움캠프 게임개발(Unity) 사전캠프 2일차 TIL (0) | 2023.09.26 |