Main

개발/C++

Boost Geometry 자주 사용하는 함수 정리 1편

boost::geometry::within 입력한 두 geometry의 포함 여부를 계산하는 함수 geometry1이 geometry2에 포함되는지 검사 return boolean template bool within(Geometry1 const & geometry1, Geometry2 const & geometry2) point_t point1; boost::geometry::model::polygon poly1; const auto& _isWithIn = boost::geometry::within(point1, poly1); ----> ok const auto& _isWithIn = boost::geometry::within(poly1, point1); ----> fail boost::geometry..

개발/C++

std::unordered_map 정렬하기

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++

[Boost Geometry] points -> polygon cluster

[개요] DFS(Depth First Search)를 활용해 분포되어있는 boost point들을 boost polygon으로 클러스터화 하는 function [결과] [코드 원본] //INCLUDE LIBRARY #include #include #include #include //MAKE NAMESPACE namespace bg = boost::geometry; namespace bgi = boost::geometry::index; //DEFINITION POINT, CLUSTER typedef bg::model::point point_t; typedef std::vector cluster_t; //DIRECTION ARRAY int dx[] = { -1,0,1,0 }; int dy[] = { 0,1,..

개발/뇌를 말랑하게하는 코테 연습

[프로그래머스 Lv2] 가장 큰 수

[구현 환경] 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..

개발/뇌를 말랑하게하는 코테 연습

[프로그래머스 Lv2] 다음 큰 숫자

[구현 환경] 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진수..

개발/뇌를 말랑하게하는 코테 연습

[프로그래머스 Lv2] 뉴스 클러스터링

[구현 환경] 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..

개발/뇌를 말랑하게하는 코테 연습

[프로그래머스 Lv2] 124 나라의 숫자

[구현 환경] C++ [문제 설명] 124 나라에는 자연수만 존재하며, 모든 수를 표현할 때 1, 2, 4만 사용함 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return [함수 원형] string solution(int n) { string answer =""; return answer; } [풀이] string answer = ""; string arr[] = { "4", "1", "2" }; string solution(int n) { string answer = ""; string arr[] = { "4", "1", "2" }; while (n > 0) { answer += arr[n % 3]; if (n % 3 == 0) n = n / 3 - 1; els..

개발/뇌를 말랑하게하는 코테 연습

[프로그래머스 Lv1] 실패율

[구현 환경] 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..

njsung
'분류 전체보기' 카테고리의 글 목록 (4 Page)