n번째 못생긴 숫자를 찾는 프로그램을 작성해야 한다고 가정합니다. 추한 숫자는 또는 b 또는 c로 나눌 수 있는 양의 정수입니다. 예를 들어, n =3이고 a =2, b =3 및 c =5이면 추한 숫자가 [2,3,4,5,6,8,9,10]이므로 출력은 4가 됩니다. , 세 번째는 4입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ok()라는 메서드를 만들면 x, a, b, c가 사용되며 아래와 같이 작동합니다. - 반환 (x/a) + (x/b) + (x/c) – (x/lcm(a,b)) - (x/lcm(b, c
문자열 s와 쌍[i] =[a, b]가 문자열의 2개의 인덱스(0-인덱싱됨)를 나타내는 문자열 쌍의 인덱스 쌍 배열을 제공했다고 가정합니다. 우리는 원하는 만큼 주어진 쌍의 인덱스 쌍에서 문자를 교환할 수 있습니다. 스왑을 사용한 후 변경할 수 있는 사전순으로 가장 작은 문자열을 찾아야 합니다. 따라서 입력이 s =dcab이고 쌍 =[[0,3], [1,2]]인 경우 출력은 bacd가 됩니다. s[0] 및 s[3], s =bcad를 교환한 다음 s[1] 및 s[2], s =bacd를 교환합니다. 이 문제를 해결하기 위해 다음 단계를
길이가 같은 두 개의 문자열과 t가 주어졌다고 가정합니다. 우리는 s를 t로 바꾸고 싶습니다. s의 i번째 문자를 t의 i번째 문자로 변경하면 비용이 |s[i] - t[i]|로 할당됩니다. 즉, 문자의 ASCII 값 간의 절대 차이입니다. 우리는 또한 정수 maxCost를 제공했습니다. maxCost보다 작거나 같은 비용으로 t의 해당 부분 문자열과 같도록 변경할 수 있는 s의 부분 문자열의 최대 길이를 찾아야 합니다. 따라서 입력이 s =abcd 및 t =bcdf와 같으면 maxCost는 3이 됩니다. 이는 s의 abc가 bcd
n명의 승객이 정확히 n개의 좌석이 있는 비행기에 탑승했다고 가정합니다. 첫 번째 승객이 티켓을 분실하고 무작위로 좌석을 선택하는 경우. 그러나 그 후에 나머지 승객들은 이 작업을 따를 것입니다 - 아직 여유가 있는 경우 티켓에 기재된 좌석에 앉으십시오. 다른 좌석이 비어 있는 경우 무작위로 선택 그래서 우리는 n번째 사람이 자신의 자리를 잡을 수 있는 확률을 찾아야 합니다. 따라서 입력이 2이면 출력은 0.5가 됩니다. 따라서 두 번째 사람이 두 번째 자리를 얻을 확률은 0.5입니다(첫 번째 사람이 첫 번째 자리를
불변의 연결 목록이 있다고 가정하고 다음 인터페이스를 사용하여 각 노드의 모든 값을 역으로 출력해야 합니다. - ImmutableListNode - 이것은 변경할 수 없는 연결 목록의 인터페이스이며 목록의 머리 부분이 지정됩니다. 연결 목록에 액세스하려면 다음 함수를 사용해야 합니다. - ImmutableListNode.printValue() - 현재 노드의 값을 출력합니다. ImmutableListNode.getNext() - 다음 노드를 반환합니다. 따라서 목록이 [0, -4, -1, 3, -5]와 같
이 튜토리얼에서는 C++의 입력 반복자를 이해하는 프로그램에 대해 설명합니다. 입력 반복기는 STL의 5가지 반복기 중 가장 약하고 간단한 것 중 하나입니다. 각 값을 읽고 반복자가 다음 값으로 이동하는 직렬 입력 작업에 주로 사용됩니다. 예 #include <iostream> #include <vector> using namespace std; int main(){ vector<int> v1 = { 1, 2, 3, 4, 5 }; //declaring
이 튜토리얼에서는 C++로 설정된 STL의 삽입과 삭제를 이해하는 프로그램에 대해 논의할 것입니다. 집합은 컨테이너 요소입니다. 고유하게 만드는 속성은 고유한 요소만 포함할 수 있고 정렬된 방식으로 반복될 수 있다는 것입니다. 예시 삽입 #include<iostream> #include<set> using namespace std; int main(){ set<int> st; //declaring iterators set<
이 자습서에서는 C++ STL을 사용하여 삽입 정렬을 이해하는 프로그램에 대해 설명합니다. 여기서 우리는 std::upper_bound를 사용하여 잘못된 위치에 있는 요소를 찾은 다음 배열의 정렬되지 않은 부분을 회전하여 정렬합니다. 예시 #include <bits/stdc++.h> //function to perform insertion sort void insertionSort(std::vector<int> &vec){ for (auto it = vec.begin(); it
이 튜토리얼에서는 C++에서 std::sort()의 내부 세부 사항을 이해하는 프로그램에 대해 논의할 것입니다. std::sort() 함수는 요소 비교를 사용하여 배열을 정렬하는 데 사용됩니다. std::sort()의 심층 기능을 살펴보면 IntroSort 알고리즘을 사용하여 컨테이너 개체의 요소를 정렬합니다. 예시 #include <bits/stdc++.h> using namespace std; int main(){ int arr[] = {1, 5, 8, 9, 6, 7, 3, 4, 2, 0};
이 튜토리얼에서는 C++의 반복자 무효화를 이해하는 프로그램에 대해 설명합니다. 컨테이너 객체의 요소를 반복하는 동안 경계 검사를 적용하지 않으면 때때로 무효화될 수 있습니다. 이는 주로 컨테이너 개체의 모양과 크기의 변화로 인해 발생합니다. 예시 #include <bits/stdc++.h> using namespace std; int main() { //declaring a vector vector <int> v{1, 5, 10, 15, 20}; &
이 튜토리얼에서는 C++의 하한을 이해하는 프로그램에 대해 설명합니다. C++의 lower_bound() 메소드는 주어진 값보다 작지 않은 컨테이너 객체의 맨 처음 숫자를 반환하는 데 사용됩니다. 예시 #include <bits/stdc++.h> int main(){ std::vector<int> v{ 10, 20, 30, 40, 50 }; std::cout << "Vector contains :"; for (u
이 튜토리얼에서는 C++에서 STL을 사용하여 Kruskal의 최소 스패닝 트리를 이해하는 프로그램에 대해 논의할 것입니다. 이를 위해 연결되고 무향이며 가중치가 적용된 그래프가 제공됩니다. 우리의 임무는 주어진 그래프에 대한 최소 스패닝 트리를 계산하는 것입니다. 예 #include<bits/stdc++.h> using namespace std; typedef pair<int, int> iPair; //structure for graph struct Graph{ int V, E; &n
이 튜토리얼에서는 C++의 MakeFile과 그 응용 프로그램을 이해하는 프로그램에 대해 논의할 것입니다. 작업은 MakeFile로 전체 프로그램을 깨는 것입니다. 일반적으로 모든 클래스/기능이 포함된 .cpp 파일과 .h 파일을 만들어 함께 연결하는 방식으로 수행됩니다. 예시 main.cpp #include <bits/stdc++.h> #include "function.h" using namespace std; //main execution program int main(){ &nbs
이 튜토리얼에서는 C++에서 order_of_key()를 이해하는 프로그램에 대해 논의할 것입니다. order_of_key() 함수는 키를 받아 정렬된 세트의 매개변수로 제공된 키보다 작은 요소의 수를 반환합니다. 예시 #include <iostream> using namespace std; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <functional> #include &l
이 튜토리얼에서는 C++ STL에서 multiset size()를 이해하는 프로그램에 대해 논의할 것입니다. size() 함수는 주어진 컨테이너에 있는 요소의 수를 반환합니다. 예시 #include <bits/stdc++.h> using namespace std; int main(){ multiset<int> s; s.insert(10); s.insert(13); cout << "The size o
이 튜토리얼에서는 C++ STL에서 multiset max_size()를 이해하는 프로그램에 대해 논의할 것입니다. max_size() 함수는 주어진 컨테이너가 보유할 수 있는 최대 요소 수를 반환합니다. 예 #include <bits/stdc++.h> using namespace std; int main(){ multiset<int> s; s.insert(10); s.insert(13); s.insert(13); &
이 튜토리얼에서는 C++에서 negative_binomial_distribution을 이해하는 프로그램에 대해 논의할 것입니다. 이 함수는 음의 이항 이산 분포를 따르고 이 무작위 분포에 따라 정수를 생성합니다. 예시 #include <bits/stdc++.h> using namespace std; int main() { //setting number of experiments const int exps = 10000; const int numbers
이 튜토리얼에서는 C++ STL에서 multiset upper_bound()를 이해하는 프로그램에 대해 논의할 것입니다. upper_bound() 함수는 매개변수로 제공된 것보다 큰 요소에 대한 포인터를 반환하고, 그렇지 않으면 컨테이너의 마지막 요소에 대한 포인터를 반환합니다. 예시 #include <bits/stdc++.h> using namespace std; int main(){ multiset<int> s; s.insert(1);
이 튜토리얼에서는 C++ STL에서 multiset lower_bound()를 이해하는 프로그램에 대해 논의할 것입니다. lower_bound() 함수는 제공된 매개변수와 동일한 컨테이너에서 요소의 첫 번째 존재를 반환하고, 그렇지 않으면 그보다 바로 큰 요소를 반환합니다. 예시 #include <bits/stdc++.h> using namespace std; int main(){ multiset<int> s; s.insert(1); s.i
이 자습서에서는 C++ STL(표준 템플릿 라이브러리)에서 다중 집합을 이해하는 프로그램에 대해 설명합니다. 다중 집합은 집합과 매우 유사한 연관 컨테이너입니다. 다중 집합이 갖는 한 가지 차이점은 중복 값을 포함할 수도 있다는 것입니다. 예시 #include #include #include 네임스페이스 사용 std;int main(){ multiset