이 튜토리얼에서는 바이너리 트리에서 노드를 삭제하는 방법을 배울 것입니다. 이진 트리의 노드는 이진 탐색 트리와 같은 순서를 따르지 않습니다. 그렇다면 이진 트리에서 노드를 삭제한 후 노드를 정렬하는 방법은 무엇입니까? 글쎄, 우리는 트리의 가장 깊은 노드를 삭제 노드로 바꿀 것입니다. 그런 다음 노드에서 가장 깊은 노드를 삭제합니다. 문제를 해결하는 단계를 살펴보겠습니다. 바이너리 노드 구조체로 트리를 초기화합니다. 트리의 노드를 출력하는 함수(preorder, in order, postorder)를 작성하세요.
이 자습서에서는 쌍(01 및 10)에서 이진 문자열을 해제하기 위해 총 쌍(01 또는 10) 수를 찾는 프로그램을 작성할 것입니다. 예를 들어 보겠습니다. 입력 − 101010001 출력 - 4 위의 예에서 쌍(01 및 10)에서 이진 문자열을 해제하려면 총 4개의 쌍을 삭제해야 합니다. 모든 쌍을 삭제한 후 결과 문자열은 0입니다. . 모든 01을 삭제해야 합니다. 및 10 이진 문자열에서 쌍. 따라서 삭제할 총 쌍 수는 최소 count(1)개입니다. 및 카운트(0) . 문제를 해결하는 단계를 살펴보겠습니다. 바이
이 튜토리얼에서는 단일 순회에서 이진 트리의 밀도를 찾는 방법을 배울 것입니다. 이진 트리의 밀도는 트리의 크기를 트리의 높이로 나누어 구합니다. 바이너리 트리의 크기는 주어진 바이너리 트리에 존재하는 총 노드 수입니다. 바이너리 트리의 높이는 루트 노드에서 리프 노드의 최대 깊이입니다. 문제를 해결하는 단계를 살펴보겠습니다. 바이너리 트리 더미 데이터를 초기화합니다. 나무의 크기와 높이를 구하세요. 트리의 높이를 재귀적으로 계산합니다. 오른쪽 노드 트리 높이보다 크면 왼쪽 노드 트리 높이를 반환하고 그
이 튜토리얼에서는 데모 번호에 대해 알아볼 것입니다. 데모 숫자는 숫자 1, 11, 111, 1111 등.의 제곱입니다. 데모 번호는 1 2 3 4 5 ... n-2 n-1 n n-1 n-2 ... 5 4 3 2 1 형식으로 쉽게 찾을 수 있습니다. . 여기에서 우리는 오직 1만을 가지는 숫자가 주어집니다. 그리고 우리는 그 번호의 데모 번호를 찾아야 합니다. 예를 들어 보겠습니다. 입력 − 1111111 출력 − 1234567654321 문제를 해결하는 단계를 살펴보겠습니다. 문자열 형식으로 숫자를 초기화합니다.
이 튜토리얼에서는 n-ary 트리의 깊이를 찾는 방법을 배울 것입니다. n-ary 트리는 트리의 각 노드가 n개 이하인 트리입니다. 자식 노드. n-ary 트리의 깊이를 찾아야 합니다. 벡터를 사용하여 트리에 있는 각 노드의 자식을 저장합니다. 문제를 해결하는 단계를 살펴보겠습니다. 더미 데이터로 트리를 초기화합니다. n-ary 트리의 깊이를 찾는 재귀 함수를 작성하십시오. 트리의 최대 깊이를 저장할 변수를 초기화합니다. 각 노드의 자식을 반복합니다. 최대 깊이는 현재 최대 깊이와 노드 자식의 깊이의
이 튜토리얼에서는 바이너리 트리에서 가장 깊은 홀수 레벨 노드를 찾는 방법을 배울 것입니다. 이것은 이진 트리의 깊이를 찾는 것과 유사합니다. 여기에서 현재 레벨이 홀수인지 아닌지에 대한 조건이 하나 더 필요합니다. 문제를 해결하는 단계를 살펴보겠습니다. 더미 데이터로 바이너리 트리를 초기화합니다. 이진 트리에서 가장 깊은 홀수 레벨 노드를 찾는 재귀 함수를 작성하십시오. 현재 노드가 리프 노드이고 레벨이 홀수이면 현재 레벨을 반환합니다. 그렇지 않으면 재귀 함수 호출로 왼쪽 노드와 오른쪽 노드의 최대값을
이 튜토리얼에서는 예를 들어 deserium number에 대해 알아볼 것입니다. pow(digit,digitCount)의 합이 포함된 숫자 주어진 숫자와 같음을 디세륨 수라고 합니다. . 주어진 번호가 디세륨 번호인지 확인하는 단계를 살펴보겠습니다. 여부. 번호를 초기화합니다. 숫자의 자릿수를 찾습니다. 합계를 저장할 변수를 초기화합니다. 숫자가 0보다 작을 때까지 반복합니다. 10으로 숫자를 다이빙하여 마지막 숫자를 가져옵니다. pow(digit,digitCount) 추가 합계. 합계
이 튜토리얼에서는 행렬의 행렬식을 찾는 방법을 배울 것입니다. 행렬의 행렬식을 찾는 단계를 살펴보겠습니다. 매트릭스를 초기화합니다. 행렬의 행렬식을 찾는 함수를 작성하세요. 행렬의 크기가 1 또는 2이면 행렬의 행렬식을 찾습니다. 간단합니다. 행렬식, 부분행렬, 부호에 대한 변수를 초기화합니다. 1에서 행렬 N의 크기까지 반복합니다. 현재 행렬 요소에 대한 부분 행렬을 찾습니다. 현재 요소의 행과 열에 없는 모든 요소 현재 요소와 보조 인자의 곱을 행렬식에 추가합니다. 기호를 변
이 튜토리얼에서는 일반 N면 다각형에서 제3자의 위치를 찾는 방법을 배울 것입니다. 우리는 정다각형의 다각형을 주었습니다. 그리고 이미 다른 두 지점에 두 사람이 있습니다. 우리의 임무는 첫 번째 두 사람과 세 번째 사람 사이의 거리가 최소화되도록 세 번째 사람을 배치할 세 번째 지점을 찾는 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. N과 두 점 A와 B를 초기화합니다. 제3자의 위치를 초기화하고, 그 위치를 찾기 위한 최소 합을 초기화합니다. 1에서 N까지 반복합니다. 현재 위치가 A 또는
이 튜토리얼에서는 정7각형의 대각선을 찾는 방법을 배울 것입니다. 주어진 변을 사용하여 정7각형의 대각선 길이를 찾아야 합니다. 정7각형의 대각선 길이는 1.802 * s입니다. 여기서 s는 칠각형의 측면입니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; float heptagonDiagonal(float s) { if (s < 0) { return -1; }  
이 튜토리얼에서는 정육각형의 대각선을 찾는 방법을 배울 것입니다. 주어진 변을 사용하여 정육각형의 대각선 길이를 찾아야 합니다. 정육각형의 대각선 길이는 1.73 * s입니다. 여기서 s는 육각형의 측면입니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; float hexagonDiagonal(float s) { if (s < 0) { return -1; }
이 튜토리얼에서는 정오각형의 대각선을 찾는 방법을 배울 것입니다. 주어진 변을 사용하여 정오각형의 대각선 길이를 찾아야 합니다. 정오각형의 대각선 길이는 1.22 * s입니다. 여기서 s는 오각형의 측면입니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; float pentagonDiagonal(float s) { if (s < 0) { return -1; }
이 튜토리얼에서는 주어진 행렬이 대각선 우세한지 아닌지를 알아내는 데 도움이 되는 프로그램을 작성할 것입니다. 행렬에서 대각 요소 이외의 요소의 합이 대각 행렬보다 작은 경우 행렬을 대각 우세 행렬이라고 합니다. 예를 들어 보겠습니다. 421 352 247 위의 행렬은 대각선 우세 행렬입니다. 왜냐하면 4 > 2 + 1 5 ≥ 3 + 2 7 > 4 + 2 모든 대각선 요소는 같은 행에 있는 비대각선 요소의 합보다 크거나 같습니다. 문제를 해결하는 단계를 살펴보겠습니다. 행렬의 행과 열을 반복합니다.
이 튜토리얼에서 우리는 주어진 n개의 질문에 대해 긍정과 부정 표시로 다른 가능한 표시를 찾는 프로그램을 작성할 것입니다. 10개의 질문이 있고 각 질문에 정답은 2점, 부정 답변은 -1점이라고 가정해 보겠습니다. 우리의 목표는 학생이 시험에서 점수를 얻을 수 있는 모든 가능한 방법을 찾는 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 문항 수를 초기화하고, 정답은 긍정, 오답은 부정을 표시합니다. 가능한 표시를 저장하도록 세트를 초기화합니다. 가능한 모든 방법에 대해 0에서 여러 질문까지 두 개의 내부 루프
이 튜토리얼에서는 주어진 문자열로 시작하고 끝나는 부분 문자열의 총 개수를 찾는 프로그램을 작성할 것입니다. 하나의 문자열과 두 개의 하위 문자열이 제공됩니다. 주어진 두 부분 문자열로 시작하고 끝나는 다른 부분 문자열 수를 찾아야 합니다. 예를 들어 보겠습니다. 입력 str = "getmesomecoffee" start = "m" end = "e" 출력 6 주어진 문자열에는 총 6개의 다른 하위 문자열이 있습니다. me, mesome, mesomememecoffe,
이 튜토리얼에서는 주어진 숫자의 디지털 근을 찾는 방법을 배울 것입니다. 디지털 근은 자릿수의 합입니다(숫자의 합이 한 자릿수가 될 때까지). 문자열 형식의 정수가 제공됩니다. 그리고 합이 한 자릿수가 될 때까지 자릿수의 합을 반복해서 구해야 합니다. 문제를 해결하는 단계를 살펴보겠습니다. 문자열 형식의 정수를 초기화합니다. 숫자를 반복하고 각 숫자를 합계 변수에 추가합니다. 합계가 0이면 0을 인쇄합니다. 그렇지 않고 합계가 9로 나누어 떨어지면 답은 9입니다. 그렇지 않으면 답은 모듈로 합 9입니
이 튜토리얼에서는 두 배열 요소의 태양을 찾아 별도의 배열에 저장하는 프로그램을 작성할 것입니다. 우리는 두 개의 배열을 제공했으며 두 개의 배열에서 해당 인덱스 요소를 추가해야 합니다. 합계가 한 자리 숫자가 아니면 숫자에서 숫자를 추출하여 새 배열에 저장합니다. 예를 들어 보겠습니다. 입력 arr_one = {1, 2, 32, 4, 5} arr_two = {1, 52, 3} 출력 2 5 4 3 5 4 5 문제를 해결하는 단계를 살펴보겠습니다. 더미 데이터로 두 개의 배열을 초기화합니다. 새 배열의 크기를
이 튜토리얼에서는 누구에게도 피해를 주지 않고 k 학생에게 n개의 공을 분배하는 방법을 배울 것입니다. 아이디어는 간단합니다. 학생들에게 배포해야 하는 다양한 색상의 n개의 공이 있습니다. 한 학생에게 같은 색의 공을 두 개 이상 줄 필요는 없습니다. 한 학생이 같은 색의 공을 두 개 이상 얻을 수 있는 경우 배포가 발생하지 않아야 합니다. 예를 들어 보겠습니다. 입력 n = 10 k = 5 ballsColors = "rrrgbrbgbr" 출력 Yes 색상은 학생 수(k)보다 많지 않습니다. 따라서 어
이 튜토리얼에서는 k의 차이로 숫자를 두 부분으로 나누는 프로그램을 작성할 것입니다. 예를 들어 보겠습니다. 입력 n = 100 k = 30 출력 65 35 여기서 우리는 문제에 뛰어들기 전에 약간의 수학을 이해할 필요가 있습니다. 봅시다. 우리는 + b =n 및 a - b =k가 있습니다. 두 방정식을 더하면 a = (n + k)/2 b = n - a 예 그게 다야 n과 k가 있습니다. 그리고 그 안에는 더 이상 아무것도 없습니다. 코드를 보자 #include <bits/stdc++.h> using na
이 튜토리얼에서는 주어진 숫자를 두 부분으로 나누는 프로그램을 작성할 것입니다. 해결하기 쉬운 문제입니다. 주어진 숫자를 다이빙하여 숫자를 얻을 수 있습니다. 그리고 합계에서 결과를 빼서 두 번째 숫자를 얻을 수 있습니다. 주어진 숫자가 n인 경우 , 두 숫자는 a = n / 2 b = n - a 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; void divideTheNumber(int n) { int a = n / 2; &