본문 바로가기
반응형

C++20

[프로그래머스 - DP] N으로 표현 📄 [DP] N으로 표현 C++ Source Code #include #include #include using namespace std; #define MAX_V 8 int solution(int N, int number) { int answer = EOF; int base = 0; // MARK: - 최솟값이 8보다 크면 -1을 return 합니다. unordered_set numbers[MAX_V]; // MARK: - 주어진 N을 최대 8번을 사용하여 만든다. for (int ii = 0; ii < MAX_V; ii++) { base = 10 * base + 1; numbers[ii].insert(base * N); } for (int ii = 1; ii < MAX_V; ii++) { for (i.. 2019. 4. 25.
[프로그래머스 - 탐욕법] 큰 수 만들기 📄 [탐욕법] 큰 수 만들기 C++ Source Code #include #include #include using namespace std; string solution(string number, int k) { vector bucket; vector removeAt; // MARK: - 주어진 숫자로부터 하나씩 꺼내어 모으면서, 이때 모아둔 것 중 지금 등장한 것보다 작은 것들을 빼낸다. for (const auto letter : number) { // MARK: - 현재 조합하고자 하는 배열이 비어있는 경우 if (bucket.empty()) { bucket.push_back(letter); continue; } // MARK: - 현재의 숫자들이 추가 될 숫자보다 작은 경우에는 제거한다. whi.. 2019. 4. 21.
[정렬] 퀵 정렬 (Quick Sort) [정렬] 퀵 정렬 (Quick Sort) 퀵 정렬(quick sort)은 기준 키를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 갖는 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방법이다. 퀵 정렬은 n개의 데이터를 정렬할 때, 최악의 경우에는 O(n^2)번의 비교를 수행하고, 평균적으로 O(n log n)번의 비교를 수행한다. 퀵 정렬의 내부 루프는 대부분의 컴퓨터 아키텍처에서 효율적으로 작동하도록 설계되어 있고(그 이유는 메모리 참조가 지역화되어 있기 때문에 CPU 캐시의 히트율이 높아지기 때문이다.), 대부분의 실질적인 데이터를 정렬할 때 제곱 시간이 걸릴 확률이 거의 없도록 알고리즘을 설계하는 것이 가능하다. 때문에 일반적인 경우 퀵.. 2019. 4. 16.
[프로그래머스 - 힙] 더 맵게 📄 [힙] 더 맵게 C++ Source Code #include #include #include using namespace std; #define MIN_E 1 #define INT_PRIORITY int, vector, greater const int calculateScoville(priority_queue & scovilles) { const int lower_Scoville = scovilles.top(); scovilles.pop(); const int second_LowerScoville = scovilles.top(); scovilles.pop(); // MARK: - 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) r.. 2019. 4. 14.
반응형