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;}
    }
}