이 문제에서는 크기가 n인 배열 arr이 제공됩니다. 우리의 임무는 모든 배열 요소를 동일하게 만드는 데 필요한 연산 수를 찾는 것입니다. 작업은 최대 가중치를 가진 요소에서 배열의 모든 요소로 동일한 가중치의 분포로 정의됩니다. . 배열 요소를 동일하게 만들 수 없으면 -1을 인쇄합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input : arr[] = {7, 3, 3, 3} Output : 3 설명 배포 후 배열은 {4, 4, 4, 4}입니다. 솔루션 접근 방식 문제에 대한 간단한 해결책은 배열의 가장
이 문제에서는 2D 평면에 있는 N개의 점이 제공됩니다. 우리의 임무는 위, 아래, 왼쪽 또는 오른쪽에 최소 1개의 점이 있는 점의 수를 찾는 것입니다. . 아래 조건 중 하나를 충족하는 1점 이상의 모든 점수를 계산해야 합니다. 위를 가리킴 − 점은 동일한 X 좌표를 가지며 Y 좌표는 현재 값보다 하나 더 큽니다. 아래를 가리킴 − 점은 동일한 X 좌표를 가지며 Y 좌표는 현재 값보다 하나 작습니다. 왼쪽 지점 − 점은 동일한 Y 좌표를 가지며 X 좌표는 현재 값보다 하나 작습니다. 오른쪽을 가리킴 − 점은 동일한
이 문제에서 소수 N이 주어집니다. 우리의 임무는 modulo 소수의 기본 근의 수를 찾는 것입니다. . 숫자의 기본 근 - [0, n-2] 범위의 모든 X에 대해 다른 r^x(mod N)의 모든 값을 갖는 N보다 작은 숫자(r)입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input : N = 5 Output : 2 솔루션 접근 방식 문제에 대한 간단한 솔루션은 시험 방법을 기반으로 합니다. x 범위가 [0, n-2]인 조건에 대해 2부터 (N-1)까지의 모든 숫자를 확인하고 조건을 충족하는 값이 발견되면 중단합니
1이고 p가 소수인 경우 p % 4 =3입니다. 7, 11, 19, 23, 31... 문제를 이해하기 위해 예를 들어 보겠습니다. Input : n = 3, p = 7 Output : 해결 방법 문제에 대한 간단한 해결책은 루프를 사용하는 것입니다. 우리는 2에서 (p - 1)까지 반복할 것입니다. 그리고 모든 값에 대해 모듈로 p가 n일 때 제곱이 제곱근인지 확인합니다. 예 솔루션 작동을 설명하는 프로그램 #include <iostream> using namespace std; void findSquareRoo
이 문제에서는 두 개의 값 n과 소수 p가 주어집니다. 우리의 임무는 Modulo p에서 Square Root를 찾는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input : n = 4, p = 11 Output : 9 솔루션 접근 방식 여기에서는 Tonelli-Shanks 알고리즘을 사용할 것입니다. . 토넬리-샹크스 알고리즘 모듈식 산술에서 x2 =n(mod p) 형식의 합동으로 값 x를 푸는 데 사용됩니다. shank의 Tonelli 알고리즘을 사용하여 모듈로 제곱근을 찾는 알고리즘 - 1단계 − $(n
이 문제에서는 정렬되지 않은 n개의 정수 값과 정수 val의 배열 aar[]가 제공됩니다. 우리의 임무는 정렬되지 않은 배열에서 요소의 시작 및 끝 인덱스를 찾는 것입니다. . 배열에서 요소가 발생하면 다음을 반환합니다. 시작 색인과 끝 색인 배열에서 두 번 이상 발견된 경우. 단일 색인 배열에서 한 번 발견된 경우. 요소가 없습니다 배열에 없는 경우. 문제를 이해하기 위해 예를 들어 보겠습니다. 예시 1 Input : arr[] = {2, 1, 5, 4, 6, 2, 3}, val = 2 Output : starting
이 문제에서는 크기가 N*N인 2D 행렬과 두 개의 변수 sum과 size가 제공됩니다. 우리의 임무는 주어진 합으로 부분행렬을 찾는 것입니다. . 요소 합이 합과 같은 크기*크기의 부분행렬을 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input : mat[][] = { {1, 5, 7, 9} {2, 4, 6, 8} {1, 2, 5, 6} {3, 6, 9, 3} } sum = 22 Size = 2 Output : YE
이 문제에서는 문자열 str과 정수 pow가 제공됩니다. 우리의 임무는 주어진 힘을 가진 부분 문자열을 찾는 것입니다. . power가 pow와 같은 부분 문자열을 반환해야 합니다. 문자열의 거듭제곱 캐릭터의 힘의 합입니다. 3,... 문제를 이해하기 위해 예를 들어 보겠습니다. Input : string = "programming" power = 49 Output : 'pro' 설명 - Power of matrix : pro, power(p) = 16 power(p) = 18 power(
이 문제에서는 정렬되지 않은 순서로 저장된 N개의 양의 정수로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 주어진 합계를 가진 부분배열을 찾는 것입니다. . 문제를 이해하기 위해 예를 들어 보겠습니다. Input : arr[] = {2, 5, 1, 4, 6, 9, 5} sum = 11 Output : subarray = {1, 4, 6} 설명 - Subarray sum = 1 + 4 + 6 = 11 솔루션 접근 방식 문제에 대한 간단한 해결책은 중첩 루프를 사용하는 것입니다. 배열을 반복하고 내부 루프를 사용하여 하위
이 문제에서는 정렬되지 않은 순서로 저장된 N개의 정수로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 주어진 합계를 가진 부분배열을 찾는 것입니다. . 문제를 이해하기 위해 예를 들어 보겠습니다. Input : arr[] = {2, 5, -1, 4, 6, -9, 5} sum = 14 Output : subarray = {5, -1, 4, 6} 설명 - Subarray sum = 5 - 1 + 4 + 6 = 14 솔루션 접근 방식 문제에 대한 간단한 해결책은 중첩 루프를 사용하는 것입니다. 배열을 반복하고 내부 루프를
이 문제에서는 이진 트리가 제공됩니다. 우리의 임무는 주어진 이진 트리에서 모든 왼쪽 잎의 합을 찾는 것입니다. . 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 출력 :11 설명 - All leaf nodes of the tree are : 2, 9 Sum = 2 + 9 = 11 솔루션 접근 방식 이 문제에 대한 간단한 해결책은 루트에서 리프로 트리를 탐색하는 것입니다. 노드가 왼쪽 리프 노드인 경우 합계에 추가합니다. 전체 트리를 횡단할 때. 합계 인쇄. 예시 솔루션 작동을 설명하는 프로그램 #include &
이 문제에서는 이진 트리가 제공됩니다. 우리의 임무는 주어진 바이너리 트리에서 모든 왼쪽 오른쪽의 합을 찾는 것입니다. . 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 출력 :8 설명 - All leaf nodes of the tree are : 1, 8 Sum = 1 + 8 = 9 솔루션 접근 방식 이 문제에 대한 간단한 해결책은 루트에서 리프로 트리를 탐색하는 것입니다. 노드가 왼쪽 리프 노드인 경우 합계에 추가합니다. 전체 트리를 횡단할 때. 합계 인쇄. 예시 솔루션 작동을 설명하는 프로그램 #inclu
이 문제에서는 n개의 정수 값으로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 주어진 배열에 대한 모든 고유한 하위 배열 합계를 찾는 것입니다. . 부분배열 합은 주어진 부분배열의 요소들의 합입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input : arr[] = {1, 2, 4} Output : 23 설명 - All subarrays of the given array are : (1), (2), (4), (1, 2), (2, 4), (1, 2, 4) Sum of subarrays = 1 + 2 + 4 + (1
이 문제에서는 자연수 N이 주어집니다. 우리의 임무는 자연수의 모든 약수의 약수의 합을 찾는 것입니다. . 문제를 이해하기 위해 예를 들어 보겠습니다. Input : N = 12 Output : 55 설명 - The divisors of 12 are 1, 2, 3, 4, 6, 12 Sum of divisors = (1) + (1 + 2) + (1 + 3) + (1 + 2 + 4) + (1 + 2 + 3 + 6) + (1 + 2 + 3 + 4 + 6 + 12) = 1 + 3 + 4 + 7 + 12 + 28 = 55 솔루션 접근
이 문제에서는 연결 목록이 제공됩니다. 우리의 임무는 연결 목록에서 짝수 노드와 홀수 노드의 합을 찾는 것입니다. . 문제를 이해하기 위해 예를 들어 보겠습니다. Input : linked list : 3 -> 2 -> 5 -> 7 -> 1 -> 9 Output : evenSum = 2 ; oddSum = 25 설명 - evenSum = 2 oddSum = 3 + 5 + 7 + 1 + 9 = 25 솔루션 접근 방식 문제를 해결하는 간단한 방법은 연결 목록을 탐색하고 짝수 또는 홀수 값을 확인하고 각
이 문제에서는 양수와 구별되는 두 개의 배열이 제공됩니다. 우리의 임무는 최대 합을 갖는 두 배열에서 쌍의 합을 찾는 것입니다. . 각 배열에서 하나의 요소로 최대 합을 갖는 쌍을 찾습니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input : arr1[] = {3, 7, 5}, arr2[] = {8, 2, 4} Output : 15 설명 - Pairs is (7, 8) = 7 + 8 = 15 해결 방법 문제를 해결하는 간단한 방법은 루프를 사용하는 것입니다. 중첩 루프를 사용하여 모든 쌍의 합을 찾고 최대 합을 가
이 문제에서 정수 값 N이 주어집니다. 우리의 임무는 시리즈 1^2 - 2^2 + 3^2 - 4^2 ... 최대 n항의 합을 찾는 것입니다. . 문제를 이해하기 위해 예를 들어 보겠습니다. Input : N = 3 Output : 6 설명 - 12 - 22 + 32 = 1 - 4 + 9 = 6 솔루션 접근 방식 문제를 해결하는 간단한 방법은 루프를 사용하는 것입니다. iterator i를 사용하여 1에서 n까지 반복합니다. i가 홀수이면 (i2 )를 합으로 합니다. i가 짝수이면 빼십시오(i2 ) 합계. 마지막으로 루프
이 문제에서는 정수 값 N이 제공됩니다. 우리의 임무는 n^2 - (n-1)^2 최대 n항까지의 시리즈 합을 찾는 것입니다. . 문제를 이해하기 위해 예를 들어 보겠습니다. Input : N = 3 Output : 6 설명 - [12 - (0)2] + [22 - (1)2] + [32 - (2)2] = 1 - 0 + 4 - 1 + 9 - 2 = 9 솔루션 접근 방식 문제를 해결하는 간단한 방법은 급수의 일반항을 찾은 다음 n항까지 합을 찾는 것입니다. 그리고 공식을 사용하여 합계를 계산하면 시간이 O(1)로 단축됩니다. 또한
이 문제에서는 정수 값 N이 주어집니다. 우리의 임무는 계열 ?3 + ?12 + ... 최대 n항의 합을 찾는 것입니다. . 시리즈는 $\sqrt3 + \sqrt12 + \sqrt27 + \sqrt48 + ...$입니다. 즉. 제곱근의 연속입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input : N = 3 Output : 10.3922 설명 - $\sqrt3 + \sqrt12 + \sqrt27 =1.7320 + 3.4641 + 5.1961 =10.3922$ 해결 방법 문제를 해결하는 간단한 방법은 급수의 일반
이 문제에서 정수 값 N이 주어집니다. 우리의 임무는 시리즈 1 - 2 + 3 - 4 + 5 - 6 + 7 최대 n항의 합을 찾는 것입니다. . 시리즈는 1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10... 문제를 이해하기 위해 예를 들어 보겠습니다. Input : N = 4 Output : -2 설명 - 1 - 2 + 3 - 4 = -2 솔루션 접근 방식 문제를 해결하는 간단한 방법은 급수의 일반항을 찾은 다음 n항까지 합을 찾는 것입니다. 그리고 공식을 사용하여 합계를 계산하면 시간이 O(1)로