std::unordered_map map보다 더 빠른 탐색을 위한 자료구조 해쉬테이블로 구현한 자료구조 O(1)의 시간복잡도를 가짐 Map의 경우 O(log n)의 시간복잡도를 가짐 #include 을 선언하면 사용 가능 std::pair으로 구성되며 key가 유사한 데이터가 많으면 성능이 떨어짐 unordered_map 정렬하기 각 Value로 정렬한 후 출력을 진행하는 간단한 로직 #include #include void main() { std::unordered_map _map; _map.insert({"a",1}); _map.insert({"b",4}); _map.insert({"c",3}); _map.insert({"d",2}); //use vector for sorting std::vector..
[구현 환경] C++ [문제 설명] 정수를 이어 붙여 만들 수 있는 가장 큰 수를 return 0 혹은 양의 정수가 담긴 배열 numbers가 주어지며, 순서를 재배치해 만들 수 있는 가장 큰 숫자를 문자열로 바꿔 return 제한사항 numbers의 길이는 1 이상 100,000 이하 number의 원소는 0 이상 1,000 이하 [함수 원형] string solution(vector numbers) { string answer; return answer; } [풀이] #include #include #include using namespace std; string solution(vector numbers) { if (numbers.size() 100'000..
[구현 환경] C++ [문제 설명] 주어진 숫자 n을 2진수로 변환했을 때의 1의 갯수와 동일한 1의 갯수를 가진 자연수 answer를 return [함수 원형] int solution(int n) { int answer; return answer; } [풀이] int solution(int n) { auto NumberOfOne = [](int n) { int cnt = 0; while (n != 0) { if (n % 2 != 0) cnt++; n /= 2; } return cnt; }; auto n1 = NumberOfOne(n); for (int i = n+1;; ++i) { auto n2 = NumberOfOne(i); if(n1==n2) return i; } } 정수 n이 입력되었을 때 2진수..
[구현 환경] C++ [문제 설명] string str1, string str2를 입력받아 자카드 유사도를 반환하는 문제 자카드 유사도는 집합 간의 유사도를 검사하는 여러 방법 중 하나 입력으로 들어온 str1과 str2를 두 글자씩 끊어서 다중집합의 원소로 만든 후, (교집합의 원소 수 / 합집합의 원소 수) * 65536을 return 만약 합집합과 교집합의 수가 0인 경우(다중 집합의 원소의 수가 모두 0인 경우) 65536을 return [함수 원형] int solution(string str1, string str2) { int answer; return answer; } [풀이] #include #include #include int solution(string str1, string str2..
[구현 환경] C++ [문제 설명] 총 스테이지 N, 유저들의 현재 스테이지 vector stages가 주어짐 모든 스테이지를 클리어한 경우 유저의 stage는 N+1로 표시됨 각 스테이지 별, 유저들의 실패율을 계산해서 정렬해 return할 것 조건 1 : 실패율이 높은 순서로 정렬 조건 2 : 실패율이 같을 경우 스테이지가 빠른 순서로 정렬 [함수 원형] vector solution(int N, vector stages) { std::vector answer; return answer; } [풀이] #include #include #include using namespace std; bool compare2(paira, pairb) { if (a.second != b.second) return a.s..