문제 설명 각 노드 요소에 숫자가 포함된 이진 트리가 제공됩니다. 작업은 하나의 리프 노드에서 다른 리프 노드까지 가능한 최소 합계를 찾는 것입니다. 예시 위 트리에서 최소 하위 경로는 다음과 같이 -6입니다:(-4) + 3 + 2 + (-8) + 1 알고리즘 아이디어는 재귀 호출에서 두 개의 값을 유지하는 것입니다 - 현재 노드 아래에 있는 하위 트리의 최소 루트 대 리프 경로 합계 잎 사이의 최소 경로 합계 방문한 모든 노드 X에 대해 X의 왼쪽 및 오른쪽 하위 트리에서 최소 루트 대 리프 합을 찾아야 합니다. 그런
문제 설명 숫자의 삼각형 구조가 주어지면 위에서 아래로의 최소 경로 합을 찾으십시오. 각 단계에서 아래 행의 인접한 번호로 이동할 수 있습니다. 예시 입력이 -인 경우 5 7 3 8 1 2 9 6 4 5 그러면 최소 합은 다음과 같이 13입니다. - 5 + 3 + 1 + 4 알고리즘 동적 프로그래밍의 암기 기법 사용 암기, 즉 암기를 위한 1차원 배열 생성 각 K 행에 대해 아래 공식 사용 - memorization[i] = min( memorization[i], memori
문제 설명 n개의 양의 정수와 숫자 k의 배열이 주어집니다. k보다 작거나 같은 모든 숫자를 모으는 데 필요한 최소 스왑 수를 찾으십시오. 예시 입력 배열이 {1, 5, 4, 7, 2, 10}이고 k =6이면 1개의 스왑이 필요합니다. 즉, 요소 7을 2로 스왑합니다. 알고리즘 k보다 작거나 같은 모든 요소를 센다. 개수가 cnt라고 가정해 보겠습니다. 길이가 cnt인 창에 대해 두 포인터 기술을 사용하여 매번 이 범위의 요소가 k보다 큰 수를 추적합니다. 총 개수가 outOfRange라고 가정해 보겠습니다. 길이가 c
문제 설명 0과 1의 배열이 주어집니다. 작업은 배열에 있는 모든 1을 함께 그룹화하는 데 필요한 최소 스왑 수를 찾는 것입니다. 예시 입력 배열 ={1, 0, 1, 1, 0, 1}이면 1개의 스왑이 필요합니다. 즉, 처음 0을 마지막 1로 바꿉니다. 알고리즘 배열의 총 1 수 계산 count가 x이면 최대 개수가 1인 이 배열의 길이가 x인 하위 배열을 찾아야 합니다. 최소 스왑은 길이 x의 하위 배열에서 0의 수이고 최대 수는 1입니다. 예시 #include <bits/stdc++.h> using namespa
문제 설명 길이가 짝수이고 0과 1이 같은 이진 문자열이 주어집니다. 문자열을 교대로 만들기 위한 최소 스왑 수는 얼마입니까? 두 개의 연속 요소가 같지 않으면 이진 문자열이 번갈아 나타납니다. 예시 str =11110000이면 2번의 스왑이 필요합니다. 알고리즘 문자열의 홀수 위치와 짝수 위치에 있는 0의 개수를 센다. 카운트를 각각 oddZeroCnt 및 evenZeroCnt로 설정합니다. 문자열의 홀수 위치와 짝수 위치에 있는 1의 개수를 센다. 그들의 개수를 각각 oddOneCnt 및 evenOneCnt로 설정합니다.
문제 설명 0과 1만 포함하는 n개의 정수 배열이 주어지면 배열이 분할되는 배열에 필요한 최소 토글(0에서 1로 또는 그 반대로 전환)을 찾으십시오. 예시 arr[] ={1, 0, 0, 1, 1, 1, 0}이면 첫 번째 1과 마지막 0을 전환하는 2개의 토글이 필요합니다. 알고리즘 질문을 관찰하면 0에서 n-1까지의 점이 분명히 존재한다는 것을 알게 될 것입니다. 여기에서 해당 지점까지의 모든 요소는 모두 0을 포함해야 하고 오른쪽에서 지점은 모두 1을 포함해야 합니다. 이 법을 준수하지 않는 지수는 제거해야 합니다. 아이디어
문제 설명 주어진 정수 배열에서 작업은 배열의 각 하위 집합에 있는 모든 요소의 AND를 찾고 모든 요소 중에서 최소 AND 값을 인쇄하는 것입니다. 예시 If arr[] = {1, 2, 3, 4, 5} then (1 & 2) = 0 (1 & 3) = 1 (1 & 4) = 0 (1 & 5) = 1 (2 & 3) = 2 (2 & 4) = 0 (2 & 5) = 0 (3 & 4) = 0 (3 & 5) = 1 (4 & 5) = 4 알고리즘 배열의 하위 집합에 대한
문제 설명 n개의 양수 요소 배열이 주어지면 하위 배열의 크기가 2보다 커야 한다는 점을 감안할 때 하위 배열에서 최대 및 최소 요소의 가능한 가장 낮은 합을 찾아야 합니다. 예 arr[] ={10, 5, 15, 7, 2, 1, 3}인 경우 2 + 1을 더할 때 최대 + 최소의 합은 3입니다. 알고리즘 하위 배열에 요소를 추가해도 최대값과 최소값의 합이 증가하지 않습니다. 배열에 요소를 추가해도 배열의 최대값은 줄어들지 않기 때문입니다. 더 큰 요소를 추가하는 경우에만 증가합니다. 따라서 길이가 2인 하위 배열만 고려하는 것이
문제 설명 두 개의 정수 p와 q가 주어지면 q % x =0 및 x % p =0이 되도록 가능한 최소 숫자 x를 찾는 작업입니다. 조건이 어떤 숫자에 대해서도 참이 아닌 경우 -1을 인쇄합니다. 예시 If p = 3 and q = 66 then answer is 3 as: 66 % 3 = 0 3 % 3 = 0 알고리즘 만약 x가 주어진 조건을 만족한다면, x는 p의 배수이고 q는 x의 배수이기 때문에 q는 p로 나누어질 것이 분명합니다. 즉, q % p =0입니다. 따라서 x의 가능한 최소값은 p와 q의 GCD가 될 것이며 q가
문제 설명 주어진 정수 배열. 배열에서 최소 XOR 값을 갖는 쌍 찾기 예시 If arr[] = {10, 20, 30, 40} then minimum value pair will be 20 and 30 as (20 ^ 30) = 10. (10 ^ 20) = 30 (10 ^ 30) = 20 (10 ^ 40) = 34 (20 ^ 30) = 10 (20 ^ 40) = 60 (30 ^ 40) = 54 알고리즘 주어진 배열의 모든 쌍을 생성하고 해당 값을 XOR 계산 최소 XOR 값 반환 예시 #include <bits/stdc+
문제 설명 모든 노드가 다양한 수의 자식을 포함하는 트리가 주어지면 트리를 미러로 변환합니다. 예시 n-항 트리가 -인 경우 그러면 거울은 - 예시 #include <bits/stdc++.h> using namespace std; struct node { int data; vector<node *>child; }; node *newNode(int x) { node *temp = new node; temp-&
문제 설명 각 배열에서 하나의 요소가 누락된 연속 짝수 및 홀수 요소를 각각 포함하는 두 개의 정수 배열 짝수 [] 및 홀수 []가 주어집니다. 과제는 누락된 요소를 찾는 것입니다. 예 짝수[] ={10, 8, 6, 16, 12} andodd[] ={3, 9, 13, 7, 11}이면 짝수 배열에서 누락된 숫자는 14이고 홀수 배열에서 누락된 숫자는 5입니다. 알고리즘 even[] 배열의 최소 및 최대 짝수 요소를 변수 minEven 및 maxEven에 저장 처음 N개의 짝수의 합은 N * (N + 1)입니다. 2에서 minEve
문제 설명 모든 단어의 순열 목록이 제공됩니다. 순열 목록에서 누락된 순열을 찾습니다. 예시 If permutation is = { “ABC”, “ACB”, “BAC”, “BCA”} then missing permutations are {“CBA” and “CAB”} 알고리즘 주어진 모든 문자열 세트 생성 그리고 모든 순열의 또 다른 세트 두 세트 간의 반환 차이 예시 #include <bits
문제 설명 배열과 두 개의 숫자 M과 K가 주어지면 배열에서 크기가 K(중첩되지 않음)인 최대 M 하위 배열의 합을 찾아야 합니다. (배열의 순서는 변경되지 않습니다.) K는 하위 배열의 크기이고 M은 하위 배열의 개수입니다. 배열의 크기는 m*k 이상이라고 가정할 수 있습니다. 전체 배열 크기가 k의 배수가 아니면 마지막 배열의 일부를 사용할 수 있습니다. 예 주어진 배열이 {2, 10, 7, 18, 5, 33, 0}인 경우. N =7, M =3 및 K =1이면 부분 집합이 -이므로 출력은 61이 됩니다. {33, 18, 10
주어진 숫자 n; 작업은 숫자 n의 뫼비우스 함수를 찾는 것입니다. 뫼비우스 기능이란? 뫼비우스 함수는 다음과 같이 정의되는 정수론 함수입니다. $$\mu(n)\equiv\begin{케이스}0\\1\\(-1)^{k}\end{케이스}$$ n=0 n에 하나 이상의 반복 요소가 있는 경우 n=1 n=1인 경우 n=(-1)k n이 k개의 고유한 소수의 곱인 경우 예시 Input: N = 17 Output: -1 Explanation: Prime factors: 17, k = 1, (-1)^k 🠠(-1)^1 = -1 Inpu
다항식 항을 포함하는 문자열이 주어지면 작업은 해당 다항식의 도함수를 평가하는 것입니다. 다항식이란 무엇입니까? 다항식은 많은을 의미하는 Poly와 많은 용어로 구성된 항을 의미하는 항이라는 두 단어에서 유래합니다. 다항식은 변수, 계수 및 지수를 포함하는 표현식으로 변수의 덧셈, 곱셈 및 뺄셈과 같은 연산만 포함합니다. 다항식의 예 x2+x+1 다항식의 도함수 p(x) =mx^n은 -가 됩니다. m * n * x^(n-1) 예시 Input: str = "2x^3 +1x^1 + 3x^2"
주어진 페이지 번호와 페이지 크기 작업은 Optimal Page Replacement Algorithm을 사용하여 페이지에 메모리 블록을 할당할 때와 같이 적중 횟수와 누락 횟수를 찾는 것입니다. 최적 페이지 교체 알고리즘이란 무엇입니까? 최적 페이지 교체 알고리즘은 페이지 교체 알고리즘입니다. 페이지 교체 알고리즘은 교체될 메모리 페이지를 결정하는 알고리즘입니다. Optimal page replacement에서는 가까운 미래에 언급되지 않은 페이지를 교체하지만 실제로 구현할 수는 없지만 이것이 가장 최적이고 누락이 최소화되고
블록 크기와 프로세스 크기를 포함하는 두 개의 배열이 제공됩니다. 작업은 메모리 관리에서 Best Fit 알고리즘에 따라 결과를 인쇄하는 것입니다. 최적 맞춤 알고리즘이란 무엇입니까? Best Fit은 메모리 관리 알고리즘입니다. 요청 프로세스의 요구 사항을 충족하는 가장 작은 여유 파티션 할당을 처리합니다. 이 알고리즘에서 우리는 전체 메모리 블록을 찾고 프로세스에 가장 작고 가장 적합한 블록을 확인한 다음 적절한 프로세스를 수행하는 데 사용할 수 있는 인접 블록을 찾습니다. 따라서 블록 크기와 프로세스 크기를 가져와서 프
n개의 프로세스, 즉 P1, P2, P3,.......,Pn과 해당 버스트 시간 및 각 프로세스와 관련된 우선 순위가 제공됩니다. 작업은 우선 CPU 스케줄링 알고리즘을 사용하여 평균 대기 시간, 평균 처리 시간 및 프로세스 실행 순서를 찾는 것입니다. 대기 시간 및 처리 시간이란 무엇입니까? 처리 시간 프로세스 제출과 완료 사이의 시간 간격입니다. 처리 시간 =프로세스 완료 – 프로세스 제출 대기 시간 처리 시간과 버스트 시간의 차이입니다. 대기 시간 =처리 시간 – 버스트 시간 우선 예약이란 무엇입니까? 우선순위
0이고 함수 f(x)는 a와 b 사이에 있어야 합니다. 즉, f(x) =[a, b ]. 작업은 이분법을 사용하여 함수 f(x)에서 간격 a와 b 사이에 있는 루트 값을 찾는 것입니다. 이분법이란 무엇입니까? 이분법은 a와 b로 정의된 주어진 한계 내에서 함수 f(x)에서 근의 값을 찾는 데 사용됩니다. 함수의 근은 f(a) =0이 되도록 값 a로 정의할 수 있습니다. 예시 Quadratic equation F(x) = - 8 This equation is equals to 0 when the value of x wi