C++ <5>
map & multimap 삽입 : O(logN) - 삽입을 위해 내부 트리를 탐색해야 해서 조금 느림 - insert() 사용 시 힌트가 최적이라면 O(1) 색인 : O(logN) - 키 사용할 경우 정렬된 벡터에서 n이 크지 않다면 검색이 더 빠를 수 있음 삽입 삭제가 빈번하다면 벡터보다 맵이 우세 set & multiset 삽입 : O(logN) - 삽입을 위해 내부 트리를 탐색해야 해서 조금 느림 - insert() 사용 시 힌트가 최적이라면 O(1) 색인 : O(logN) - 키 사용할 경우 map과 동일한 자료구조를 사용하므로 성능의 특성이 맵과 동일 unordered_map & unordered_multimap 삽입 : O(1) - O(n) 색인 : O(1) - O(n) - 키 사용할 경우 ..
string push_back() : O(1) [] > at() : O(1) 배열 구조 배열 구조라 push_back()이 아닐 경우 뒤에 있는 항목을 밀어내야 함 : O(n) 정렬 : O(nlogn) iterator 검색 : O(n) / 정렬되어 있다면 O(logn) vector push_back() : O(1) [] > at() : O(1) 배열 구조 배열 구조라 push_back()이 아닐 경우 뒤에 있는 항목을 밀어내야 함 : O(n) 정렬 : O(nlogn) iterator 검색 : O(n) / 정렬되어 있다면 O(logn) deque push_back() : O(1) push_front() : O(1) [] > at() : O(1) 배열 구조라 push_back()이 아닐 경우 뒤에 있는 항목..

초등학생 때 많이 풀었던 시침과 분침의 각도 구하기를 해보자. 제약조건은 시침과 분침 사이의 각도 중에 더 작은 각을 return 하는 것이다. class Solution { public: double angleClock(int hour, int minutes) { auto hourHand = hour * 30 + minutes * 0.5; auto minuteHand = minutes * 6; auto diff = abs(hourHand - minuteHand); return min(diff, 360 - diff); } }; 시침(hour hand)은 1시간에 30도 + 1분에 0.5도씩 움직인다. 분침(minute hand)은 1분에 6도씩 움직인다. 시침과 분침의 각도를 구한 다음에 차이 값 중 작..

두 개의 이진트리가 주어졌을 때 같은 트리인지 확인하는 코드 작성하기 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: bool isSame..
malloc 1. 메모리 공간 할당 new 1. 메모리 공간 할당 2. 생성자의 호출(초기화) 3. 반환된 주소 값을 할당하고자 하는 자료형에 맞게 형 변환