입력으로 숫자 num이 제공됩니다. 목표는 ((num%i)%j)%num이 최대화되고 i와 j가 모두 [1,num] 범위에 있도록 형식 (i,j) 쌍의 수를 찾는 것입니다. 예를 들어 이해하자 입력 - 숫자=4 출력 - ((n % i) % j) % n이 최대화되는 (i, j) 쌍의 개수는 - 3 설명 − 쌍은 다음과 같습니다:(3,2), (3,3), (3,4) 입력 - 숫자=6 출력 - ((n % i) % j) % n이 최대화되는 (i, j) 쌍의 개수는 - 4 설명 − 쌍은 다음과 같습니다:(4,3, (4,4), (4,
입력으로 숫자가 주어집니다. 목표는 모든 인접 문자의 ASCII 값 차이가 1이 되도록 길이가 num인 가능한 문자열의 수를 계산하는 것입니다. num이 2이면 문자열은 ab, ba, bc, cb, .....yz, zy가 됩니다. 예를 들어 이해하자 입력 - 숫자=3 출력 − 인접 문자의 차이가 1인 문자열의 개수는 − 98 설명 − 일부 샘플 문자열은 abc, aba, cde .....xyx, zyz, xyz입니다. 입력 - 숫자=2 출력 − 인접 문자의 차이가 1인 문자열의 개수는 − 50 설명 − 일부 샘플 문자
우리는 한 변의 길이가 있는 정삼각형입니다. 목표는 직사각형의 수평면이 밑변과 평행하도록 삼각형 내부에 존재할 수 있는 별개의 직사각형의 수를 계산하는 것입니다. 또한 직사각형의 모든 끝점이 그림과 같이 점에 닿습니다. 예를 들어 이해하자 입력 - 면=3 출력 − 정삼각형에 내접하는 고유한 직사각형의 수는 − 1 설명 − 위 그림은 사각형을 나타냅니다. 입력 - 면=10 출력 − 정삼각형에 내접된 고유한 직사각형의 개수는 − 200입니다. 아래 프로그램에서 사용된 접근 방식은 다음과 같습니다. 위의 그림에서 볼 수
이 문제에서는 n개의 정수로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 배열에서 삼중항(크기 3의 부분 수열)의 최대 곱을 찾는 것입니다. 여기에서 상품가치가 최대인 트리플을 찾아 상품을 반품합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {9, 5, 2, 11, 7, 4} 출력 693 설명 여기에서 배열의 모든 요소의 최대 곱을 제공하는 트리플렛을 찾을 수 있습니다. maxProd =9 * 11 * 7 =693 해결 방법 문제에 대한 여러 솔루션이 있을 수 있습니다. 여기에서 논의할 예정입니
이 문제에서는 n개의 양의 정수로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 크기가 3인 증가하는 부분 수열의 최대 곱을 찾는 프로그램을 만드는 것입니다. 문제 설명 − 여기에서 증가하는 부분 시퀀스를 형성하고 배열 인덱스도 증가하도록 배열의 3개 요소의 최대 곱을 찾아야 합니다. 즉 arr[i]*arr[j]*arr[k]는 최대값이고,arr[i]
이 문제에서는 크기가 n인 배열 arr[]이 제공됩니다. 우리의 임무는 증가하는 부분 수열의 최대 곱을 찾는 것입니다. 문제 설명 − 배열의 요소에서 가능한 모든 크기의 부분 수열 증가의 최대 곱을 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {5, 4, 6, 8, 7, 9} 출력 2160 설명 All Increasing subsequence: {5,6,8,9}. Prod = 2160 {5,6,7,9}. Prod = 1890 Here, we have considered only max size
이 문제에서는 배열 arr[]이 제공됩니다. 우리의 임무는 왼쪽과 오른쪽에서 다음으로 큰 인덱스의 최대 곱을 계산하는 프로그램을 만드는 것입니다. 문제 설명 - 주어진 배열에 대해 left[i]*right[i]의 최대값의 곱을 찾아야 합니다. 두 배열 모두 −로 정의됩니다. left[i] = j, such that arr[i] <’. ‘ arr[j] and i > j. right[i] = j, such that arr[i] < arr[j] and i < j. *The array is 1
문제에서 n개의 정수 값의 배열 arr[]이 제공됩니다. 우리의 임무는 어레이의 최대 곱 하위 집합을 찾는 프로그램을 만드는 것입니다. 문제 설명 − 여기에서 배열 요소의 하위 집합의 가능한 최대 곱을 계산해야 합니다. 하위 집합 - sub[]의 모든 요소가 arr[]에 있는 경우 배열 sub[]는 배열 arr[]의 하위 집합입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 arr[] = {4, 5, 2, −1, 3} 출력 40 설명 Subset sub[] = {4, 5, 2} Prod = 4*5*2 =
이 문제에서는 n개의 정수로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 주어진 조건을 만족하는 부분 배열의 최대 크기를 찾는 프로그램을 만드는 것입니다. 문제 설명 − 다음 조건 중 하나를 만족하는 가장 큰 부분배열의 길이를 찾아야 합니다. arr[k+1]이고 k가 짝수이면 arr[k]
이 문제에서는 0/1과 같은 온라인 이진수를 포함하는 크기 n*m의 2차원 행렬 bin[][]이 제공됩니다. 우리의 임무는 모두 1이고 최대 면적을 반환하는 최대 크기의 직사각형 이진 부분행렬을 찾는 프로그램을 만드는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 bin[][] = { {1, 0, 1, 1, 1} {0, 1, 1, 1, 1} {0, 0, 1, 1, 1} {1, 1, 1, 1, 1} } 출력 12 설명 이 직
이 문제에서 우리는 클래스의 학생 점수를 나타내는 n 크기의 배열 stu[]가 제공됩니다. 각 학생의 최대 점수는 100점이며 학생은 시험에 합격하기 위해 50점을 받아야 합니다. 우리의 임무는 100점을 넘지 않고 모든 사람에게 보너스를 준 후 합격할 최대 학생을 찾는 프로그램을 만드는 것입니다. 문제 설명 − 합격하려면 가점을 주어야 하지만 가산점은 모든 학생에게 주어집니다. 우리의 임무는 보너스 점수를 부여하여 시험에 합격할 수 있는 학생 수를 최대화하는 것입니다. 그러나 어떤 학생도 보너스를 준 후 100점을 넘지 않아야
이 문제에서는 이진수(0/1)로 구성된 nXn 크기의 2차원 행렬이 제공됩니다. 우리의 임무는 0보다 1이 더 많은 최대 부분행렬 영역을 찾는 프로그램을 만드는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 bin[N][N] = { {0, 1, 0, 0}, {1, 1, 0, 0}, {1, 0, 1, 1}, {0, 1, 0, 1} } 출력 9 설명 submatrix : bin[1][0], bin[1][1], bin[1][2]
이 문제에서는 이진 트리 BT가 주어집니다. 우리의 임무는 하위 트리도 BST가 되도록 이진 트리에서 최대 하위 트리 합을 찾는 프로그램을 만드는 것입니다. Binary Tree는 각 노드가 최대 2개의 자식을 가질 수 있는 특별한 조건이 있습니다. 이진 탐색 트리는 모든 노드가 아래에 언급된 속성을 따르는 트리입니다. 왼쪽 하위 트리의 키 값이 상위(루트) 노드의 키 값보다 작습니다. 오른쪽 하위 트리의 키 값이 상위(루트) 노드의 키 값보다 크거나 같습니다. 문제를 이해하기 위해 예를 들어보겠습니다.
이 문제에서 n개의 양의 정수와 정수 k로 구성된 배열 arr[]가 주어집니다. 우리의 임무는 해당 크기의 모든 하위 배열이 k보다 작은 합계를 갖도록 최대 하위 배열 크기를 찾는 프로그램을 만드는 것입니다. 문제 설명 − 우리는 배열의 요소로부터 크기로 생성된 모든 하위 배열이 k보다 작거나 같은 요소의 합을 갖도록 하위 배열의 가장 큰 크기를 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 arr[n] = {4, 1, 3, 2}, k = 9 출력 3 설명 크기가 3인 모든 하위 배열과 그 합 - {4,
이 문제에서 크기가 n인 두 개의 배열 arr1[]과 크기가 m인 arr2[]가 주어졌습니다. 우리의 임무는 특정 요소를 제외한 최대 하위 배열 합계를 찾는 프로그램을 만드는 것입니다. 문제 설명 − arr2[]에 없는 배열 arr1[]의 요소에서 최대 하위 배열 합계를 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr1[] = {4, 5, 7, 2, 9}, arr2[] = {1, 9, 2, 7} 출력 9 설명 arr1 after removal of elements of arr2[] = {4, 5} Bo
이 문제에서는 크기가 n이고 정수 k인 배열 arr[]이 제공됩니다. 우리의 임무는 반복 연결 후에 생성된 배열에서 최대 하위 배열 합을 찾는 프로그램을 만드는 것입니다. 문제 설명 − arr, k번 반복하여 생성된 배열에서 부분 배열의 최대 합을 구합니다. 예시 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {−9, −5, 14, 6} k = 2 출력 26 설명 New array after repeating : {−9, −5, 14, 6, −9, &minu
이 문제에서 n개의 양의 정수로 구성된 배열 arr[]가 주어집니다. 우리의 임무는 3개가 연속되지 않도록 최대 부분 수열 합을 찾는 프로그램을 만드는 것입니다. 문제 설명 − 여기서 연속된 세 개의 요소가 없도록 배열에서 생성된 시퀀스의 합을 찾아야 합니다. 연속적인 요소 배열은 동일한 인덱스 순서를 따르는 요소입니다. arr[0], arr[1], arr[2], … 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] ={5, 9, 12, 15} 출력 32 설명 합계 =5 + 12 + 15 =32 솔루션 접근 방식
이 문제에서는 n개의 정수 배열 arr[]이 제공됩니다. 우리의 임무는 배열의 첫 번째 요소에서 시작하여 최대 합 교대 부분 수열을 찾는 프로그램을 만드는 것입니다. 교대 하위 시퀀스는 요소가 교대로 증가 및 감소하는 하위 시퀀스입니다. 즉, 먼저 감소, 증가, 그 다음 감소합니다. 여기서 역 교대 부분 수열은 최대 합을 찾는 데 유효하지 않습니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {5, 1, 6, 2, 4, 8, 9} 출력 27 설명 Starting element: 5, decrease: 1,
이 문제에서는 두 개의 배열 arr1[] 및 arr2[]와 두 개의 숫자N 및 M이 제공됩니다. N은 arr1에서 가져온 요소의 수를 나타냅니다. M은 arr2에서 가져온 요소의 수를 나타냅니다. 우리는 arr1[i]에서 arr2[i]까지의 요소 중 하나를 선택해야 하며, 이에 대한 합계를 최대화하지만 최대 N은 arr1에서, M은 arr2에서 가져올 수 있습니다. 우리의 임무는 C++에서 순서대로 두 개의 배열에서 요소를 선택하여 최대 합을 찾는 프로그램을 만드는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다.
이 문제에서는 크기가 n인 배열 arr[]이 제공됩니다. 우리의 임무는 C++에서 DP를 사용하여 최대 합 증가 부분 수열을 찾는 프로그램을 만드는 것입니다. 문제 설명 − 최대 합 증가 부분 수열을 찾기 위해 다음 요소가 현재 요소보다 큰 부분 수열을 생성합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 arr[] = {4, 2, 3, 6, 5, 9} 출력 20 설명 Increasing subsequence with maximum sum: {2, 3, 6, 9} = 2 + 3 + 6 + 9 = 20 솔루션 접근 방식