문자열 S와 숫자 X가 있다고 가정합니다. 주사위를 굴리는 M명의 다른 플레이어가 있습니다. 한 플레이어는 X가 아닌 다른 숫자가 나올 때까지 계속해서 주사위를 던집니다. 여기서 문자열 S에서 S[i]는 i번째 주사위를 던졌을 때의 숫자를 나타냅니다. M의 값을 찾아야 합니다. 한 가지 제약 조건은 S의 마지막 문자가 X가 될 수 없다는 것입니다. 따라서 예를 들어 string이 3662123이고 X =6이면 출력은 5가 됩니다. 이는 다음과 같이 설명할 수 있습니다. - 첫 번째 플레이어가 3점을 얻었습니다. 두 번째 플레이어는
여기서 우리는 Array Decay가 무엇인지 볼 것입니다. 배열의 유형과 차원이 손실되는 것을 배열 감쇠라고 합니다. 포인터나 값으로 함수에 배열을 전달할 때 발생합니다. 첫 번째 주소는 포인터인 배열로 전송됩니다. 그래서 배열의 크기가 원래 배열의 크기가 아닙니다. C++ 코드를 사용한 배열 붕괴의 한 예를 살펴보겠습니다. 예 #include<iostream> using namespace std; void DisplayValue(int *p) { cout << "New si
C++에서 맵과 정렬되지 않은 맵은 해시 테이블입니다. 그들은 일부 키와 각각의 키 값을 사용합니다. 여기서 우리는 주어진 키가 해시 테이블에 존재하는지 여부를 확인하는 방법을 볼 것입니다. 코드는 아래와 같을 것입니다 - 예시 #include<iostream> #include<map> using namespace std; string isPresent(map<string, int> m, string key) { if (m.find(key) == m.end()) &
여기에서 값을 인수로 전달하여 집합에서 하나의 요소를 삭제하는 방법을 볼 것입니다. 따라서 집합이 {10, 20, 30, 50, 60, 80, 90, 100, 120, 200, 500}이고 90을 삭제하려는 경우 {10, 20, 30, 50, 60, 80, 100, 120, 200, 500} 집합에서 각 요소는 한 번만 발생할 수 있으며 배열됩니다. 요소의 값은 추가될 때 수정할 수 없으므로 변경할 수 없습니다. 요소를 추가하거나 제거할 수 있지만 이 작업을 수행하기 위해 erase() 메서드를 사용할 수 있습니다. 예 #inc
C++에 하나의 STL 목록이 있다고 가정합니다. 요소가 거의 없습니다. 그 목록에서 마지막 요소를 삭제해야 합니다. 따라서 요소가 [10, 41, 54, 20, 23, 69, 84, 75]와 같으면 마지막 요소는 75입니다. 목록에서 마지막 요소를 삭제하는 C++ 코드가 표시됩니다. 예시 #include<iostream> #include<list> using namespace std; void display(list<int> my_list){ for (auto it = my_
여기서는 C++ STL 맵에서 마지막 요소를 삭제하는 방법을 살펴보겠습니다. 맵은 해시 테이블 기반 데이터 유형이며 키와 값이 있습니다. 다음과 같이 prev() 메서드를 사용하여 마지막 요소를 가져오고 erase() 함수를 사용하여 삭제할 수 있습니다. 예시 #include<iostream> #include<map> using namespace std; int main() { map<string, int> my_map; my_map["first
C++에 하나의 STL 세트가 있다고 가정합니다. 요소가 거의 없습니다. 해당 세트에서 마지막 요소를 삭제해야 합니다. 따라서 요소가 [10, 41, 54, 20, 23, 69, 84, 75]와 같으면 집합은 [10 20 23 41 54 69 75 84]가 되고 마지막 요소는 84가 됩니다. 집합에서 마지막 요소를 삭제하는 C++ 코드입니다. 예시 #include<iostream> #include<set> using namespace std; void display(set<int> my_set){ &
여기서 우리는 최대 요소를 찾는 방법을 볼 것입니다. 따라서 배열이 [12, 45, 74, 32, 66, 96, 21, 32, 27]과 같으면 최대 요소는 96입니다. algorithm.h 헤더 파일에 있는 max_element() 함수를 사용하여 최대 요소. 예시 #include<iostream> #include<algorithm> using namespace std; int main() { int arr[] = {12, 45, 74, 32, 66, 96, 21, 32, 27}; &nb
여기서는 배열에서 최대 및 최소 요소를 찾는 방법을 살펴보겠습니다. 따라서 배열이 [12, 45, 74, 32, 66, 96, 21, 32, 27]과 같으면 최대 요소는 96이고 최소 요소는 12입니다. max_element() 함수와 min_element()를 사용할 수 있습니다. 최대 및 최소 요소를 각각 가져오기 위해 algorithm.h 헤더 파일에 있는 함수입니다. 예시 #include<iostream> #include<algorithm> using namespace std; int main() { &
여기서는 배열의 모든 요소의 합을 찾는 방법을 살펴보겠습니다. 따라서 배열이 [12, 45, 74, 32, 66, 96, 21, 32, 27]과 같으면 합계는 405가 됩니다. 따라서 여기에서 이 문제를 해결하기 위해 누적() 함수를 사용해야 합니다. 이 함수 설명은 헤더 파일에 있습니다. 예시 #include<iostream> #include<numeric> using namespace std; int main() { int arr[] = {12, 45, 74, 32, 66, 96,
C++에 하나의 STL 목록이 있다고 가정합니다. 요소가 거의 없습니다. 목록에 새 요소를 삽입해야 합니다. 끝, 시작 또는 임의의 위치에 삽입할 수 있습니다. 더 나은 이해를 위해 하나의 코드를 살펴보겠습니다. 처음에 삽입하려면 push_front()를 사용하고 끝에 삽입하려면 push_end()를 사용하고 임의의 위치에 삽입하려면 몇 가지 작업을 사용해야 합니다. 하나의 반복자를 초기화한 다음 해당 반복자를 올바른 위치로 이동한 다음 insert() 메서드를 사용하여 해당 위치에 삽입해야 합니다. 예시 #include<io
여기에서 우리는 C++에서 STL 함수를 사용하여 배열을 뒤집는 방법을 볼 것입니다. 따라서 배열이 A =[10, 20, 30, 40, 50, 60]인 경우 출력은 B =[60, 50, 40, 30, 20, 10]이 됩니다. 역방향으로 헤더 파일 에 reverse()라는 함수가 하나 있습니다. 코드는 아래와 같습니다 - 예시 #include <iostream> #include <algorithm> using namespace std; int main() { int arr[] = {10,
여기서는 C++에서 STL 함수를 사용하여 배열을 정렬하는 방법을 살펴보겠습니다. 따라서 배열이 A =[52, 14, 85, 63, 99, 54, 21]과 같으면 출력은 [14 21 52 54 63 85 99]가 됩니다. 정렬을 위해 헤더 파일에 sort()라는 함수가 있습니다. 코드는 아래와 같습니다 - 예시 #include <iostream> #include <algorithm> using namespace std; int main() { int arr[] = {52, 14, 85,
집합이 있다고 가정하고 반대 방향으로 집합을 순회해야 합니다. 따라서 집합이 S =[10, 15, 26, 30, 35, 40, 48, 87, 98]과 같으면 출력은 98 87 48 40 35 30 26 15 10이 됩니다. 역순으로 순회하려면 reverse_iterator를 사용할 수 있습니다. 여기서 rbegin() 및 rend() 함수를 사용하여 역방향 반복기의 시작과 끝을 가져옵니다. 예시 #include <iostream> #include <set> using namespace std; int main
C++에서는 getline() 함수를 사용하여 스트림에서 줄을 읽습니다. Enter 버튼을 누르거나 사용자가 지정한 구분 기호가 제공될 때까지 입력을 받습니다. 여기에서는 getline() 함수를 사용하여 줄 바꿈 문자를 입력으로 사용하는 방법을 볼 것입니다. 아이디어를 얻기 위해 다음 구현을 살펴보겠습니다. 예시 #include<iostream> using namespace std; int main() { string str; int term = 4;  
이 섹션에서는 C++의 Chrono 라이브러리가 무엇인지 살펴보겠습니다. 이 Chrono 라이브러리는 날짜와 시간에 사용됩니다. 타이머와 시계는 시스템마다 다릅니다. 따라서 정밀도보다 시간을 개선하려면 이 라이브러리를 사용할 수 있습니다. 이 라이브러리에서는 기간과 시점을 구분하여 정밀도 중립적 개념을 제공합니다. duration 객체는 분, 2시간 또는 10분과 같은 카운트를 통해 시간 범위를 표현하는 데 사용됩니다. 예를 들어 30초는 1초 단위의 30틱으로 구성된 지속 시간으로 표시됩니다. 예시 #include <io
여기서는 C++에서 두 문자열을 비교하는 방법을 살펴보겠습니다. C++에는 문자열 클래스가 있습니다. 또한 문자열을 비교하기 위해 표준 라이브러리에 compare() 함수가 있습니다. 그러나 여기서는 ==, !=, , =와 같은 조건 연산자를 사용합니다. 이 연산자는 문자열을 문자별로 확인합니다. 더 나은 아이디어를 얻기 위해 코드를 살펴보겠습니다. 예 #include using namespace std;void compareStrings(string s1, string s2) { if (s1 !=s2) cout <
n개의 요소가 있는 배열 A가 있다고 가정합니다. 배열의 극소값을 찾아야 합니다. 배열 A에서 요소 A[x]는 인접 요소 모두보다 작거나 같으면 극소값이라고 합니다. 코너 요소의 경우 하나의 이웃만 고려됩니다. 사용 가능한 극소값이 두 개 이상인 경우 하나만 반환합니다. 예를 들어 배열이 [9, 6, 3, 14, 5, 7, 4]와 같으면 극소값은 3, 5, 4가 될 수 있으므로 이 알고리즘은 그 중 하나만 반환할 수 있습니다. 이 문제를 해결하기 위해 이진 검색과 같은 논리를 따릅니다. 중간 요소가 왼쪽 및 오른쪽 요소보다 작으면
두 개의 정수 N과 K가 있다고 가정합니다. 다음 식이 만족되도록 2N개의 자연수의 첫 번째 순열을 찾아야 합니다. $$\displaystyle\sum\limits_{i=1}^N\lvert A_{2i-1}-A_{2i}\rvert+\lvert \displaystyle\sum\limits_{i=1}^N A_{2i-1 }-A_{2i} \rvert=2K$$ K 값은 N보다 작거나 같아야 합니다. 예를 들어, N =4이고 K =1이면 출력은 2 1 3 4가 됩니다. 주어진 표현식의 결과는 (|2 – 1| + | 3 – 4|) – (|2
숫자 n이 있다고 가정합니다. 범위의 모든 숫자가 합성이고 범위의 길이가 n인 양의 정수 범위를 찾아야 합니다. 범위가 두 개 이상인 경우 하나의 범위를 인쇄합니다. 합성수는 1과 자기 자신 이외의 약수가 하나 이상 있는 수입니다. 범위의 길이가 n이므로 첫 번째 숫자가 a이면 다른 숫자는 a + 1, a + 2, …, a + n – 1이며 모두 합성이어야 합니다. 여기서 x가 양의 정수인 경우 x는 2, 3, 4, …, p – 1의 인수를 갖습니다. 그래서 p! + 나는 요인 i를 가지고 있으므로 p! + 나는 합성이어야 한다.