언어
[C++] Map 자료구조
map 이란 map의 자료구조는 트리로 구성되어 있다. 정확히 말하면 레드 블랙 트리이다. 레드 블랙 트리는 자가 균형 이진 탐색 트리로써 삽입과 삭제가 일어나는 경우에 자동으로 그 높이를 작게 유지하는 이진 탐색 트리이다. 높이를 작게 유지하는 이유는 연산 과정에서 트리의 높이가 한쪽으로 치우치는 것을 막기 위함이다. 이는 시간복잡도와 관련이 있는데, 트리에 n개의 원소가 있을 때 O(log n)의 시간 복잡도로 삽입, 삭제, 검색을 할 수 있다. map map은 key, value 값이 쌍으로 저장되는 형태를 띠며 중복을 허용하지 않는다. 따라서 key값을 이용해서 value를 찾을 수 있다. 또한, map은 자료를 저장할때 내부에서 자동으로 정렬한다. key를 기준으로 정렬하며 오름차순으로 정렬한다..
[C++] string to int, int to string
String to int int stoi (const string& str [, size_t* idx = 0, int base = 10]) : string to int string 을 int 로 바꿔주기 위해서는 stoi() 함수를 써야한다. string to Integer를 줄인 것이다. #include 도 선언해주어야 한다. 세번째 인수를 보면 기본으로 10이 주어져 있는데, 이는 10진수인 string이란 뜻이다. N으로 바꾸면 N진수 string을 10진수 int로 바꾸겠다는 뜻이다. int to String string to_string(int val) : int to string int 를 string 으로 바꾸는 법은 더 직관적이다. int뿐만 아니라 double, long long 등 다 ..
[Python] mutable 객체와 immutable 객체, 얕은 복사와 깊은 복사
파이썬에는 얕은 복사와 깊은 복사가 있는데, 이것을 제대로 이해하기 위해서는 파이썬에 있는 mutable 객체, immutable 객체에 대해서 알아야 한다. mutable 객체와 immutable 객체에 대하여 파이썬에서는 객체의 종류를 두 가지로 구분할 수 있는데, mutable 은 변경되는 객체이고 종류는 list, set, dictionary 가 있고 immutable 은 변경되지 않는 객체로 종류는 int, float, tuple, str, bool 이 있다. immutable mutable 객체의 경우에는 모든 객체를 각각 생성해서 참조하고, immutable 객체는 값이 같은 경우에 변수에 상관없이 동일한 곳을 참조한다. 예제를 통해서 이해해보자. immutable 객체인 int 형 변수에 ..
[Python] 자료형 - list, tuple, set, dictionary
자료형 리스트 list 는 여러 값을 넣을 수 있는 자료형이다. 순서가 있고(인덱스 기반 접근), 중복이 가능하며, 수정이 가능하다. subway = ["유재석", "조세호"] print(subway)# ['유재석', '조세호'] list 자료형은 [ ] (대괄호 쌍)으로 감싸서 초기화한다. subway.append("하하") subway.insert(1, "하하") print(subway)# ['유재석', '하하', '조세호', '하하'] append() 는 마지막에 요소를 추가하고, insert() 는 원하는 index 에 요소를 추가한다. subway.pop()# '하하' print(subway)# ['유재석', '하하', '조세호'] pop() 은 마지막 요소를 삭제하고 반환한다. subway.c..