이 문제에서는 양수 값으로 구성된 n 크기의 배열 arr[]이 제공됩니다. 우리의 임무는 관계 연산자를 사용하지 않고 배열에서 최대값을 찾는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력: arr[] ={5, 1, 6, 7, 8, 2} 출력: 8 해결 방법 논리 연산자를 사용하지 않고 값을 비교해야 하기 때문입니다. 이를 위해 우리는 반복적인 빼기를 수행해야 하며 더 오래 지속되는 숫자가 더 커질 것입니다. 모든 값이 0이 될 때까지 1씩 감소합니다. 배열의 처음 두 값으로 시작하여 둘 중 가장 큰 값을
이 문제에서는 행렬 mat이 주어집니다. 크기 mXn의 정수 값. 우리의 임무는 행렬에서 동일한 직사각형 합으로 셀을 인쇄하는 프로그램을 만드는 것입니다. . 문제 설명: 셀로 시작하고 끝나는 부분 행렬의 합이 나머지 모든 요소의 합과 같은 방식으로 행렬에서 셀을 찾을 것입니다. 셀의 경우 행렬 (a, b) 부분행렬 mat[0][0]에서 mat[a][b]로, mat[a][b]에서 mat[m][n]으로의 합은 다음과 같습니다. 나머지 모든 요소의 합계입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 매트[][
이 문제에서는 두 개의 값 k1과 k2(k1
이 문제에서는 두 개의 문자열 str1과 str2가 제공됩니다. 우리의 임무는 한 문자열을 다른 문자열로 변환하는 가능한 모든 방법을 인쇄하는 프로그램을 만드는 것입니다. 문제 설명: 여기에서 str1을 str2로 변환할 수 있는 모든 가능한 방법을 찾아야 합니다. 변환하는 동안 세 가지 작업 중 하나를 수행할 수 있습니다. 삽입 제거 교체 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: str1 =kfeod str2 =kfcadq 출력 Way1:Insert q, after d. Replace c by e.
이 문제에서는 크기가 n인 배열 arr[]이 제공됩니다. 우리의 임무는 배열에 있는 모든 쌍의 합계의 XOR 합계를 찾는 프로그램을 만드는 것입니다. 문제를 이해하기 위한 예를 살펴보겠습니다. 입력: arr[5, 7, 9] 출력: 22 설명: (5+5) ^ (5+7) ^ (5+9) ^ (7+5) ^ (7+7) ^ (7+9) ^ (9+5) ^ (9+7) ^ (9+9) =22 문제에 대한 간단한 해결책은 중첩 루프를 사용하는 것입니다. 그리고 배열에서 가능한 모든 쌍을 만듭니다. 그리고 각 쌍의 합에 대한 XOR을 계
이 문제에서는 크기가 2n인 배열 arr[]가 제공됩니다. . 우리의 임무는 그것을 풀기 위해 동적 프로그래밍을 사용하여 부분 집합에 대한 합을 찾는 프로그램을 만드는 것입니다. 함수를 계산해야 합니다. F(x) =Σ Ai 모든 x에 대해 x&i ==i가 되도록. 즉, i는 x의 비트 부분집합입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: A[] ={5, 7, 1, 9}, n =2 출력: 5 12 6 22 설명: n =2 의 경우 x 값은 4개입니다. 0, 1, 2, 3입니다. 이제 함수의 값을 계산합니다
이 문제에서는 숫자 n이 주어집니다. 우리의 임무는 1 + (1+3) + (1+3+5) + (1+3+5+7) + … + (1+3+ 시리즈의 합을 찾는 프로그램을 만드는 것입니다. 5+7+…+(2n-1)). 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: n =5 출력: 55 그래서, 질문에 따르면 사용자가 우리에게 숫자 n을 주고 우리는 시리즈 1 + (1+3) + (1+3+5) + (1+3+5+7)을 추가해야 한다고 가정합니다. + … + (1+3+5+7+…+(2n-1)). 먼저 이 시리즈의 의미를 더 잘 이
이 문제에서는 두 개의 문자열 str1과 str2가 제공됩니다. 우리의 임무는 사전순으로 가장 긴 공통 하위 시퀀스를 모두 인쇄하는 프로그램을 만드는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: str1 =gfare , str2 =rfare 출력: 요금 솔루션 접근 방식 이 문제에서는 가능한 가장 긴 공통 부분 수열을 모두 찾아 동적 프로그래밍을 사용하여 2D 행렬에 저장합니다. 그런 다음 정렬된 출력을 인쇄합니다. LCS에서 a에서 z까지의 문자를 검색하여. 우리 솔루션의 작동을 설명하는 프로그램,
이 문제에서 우리는 숫자 N을 받습니다. 우리의 임무는 사전순으로 A와 B의 문자열로 숫자를 인쇄하는 프로그램을 만드는 것입니다. 모든 숫자를 A와 B의 문자열로 표현하면 1 =A 2 =나 3 =AA 4 =AB 5 =학사 6 =BB 7 =AAA 8 =AAB 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: N =12 출력: BAB 해결 방법 A와 B의 문자열은 이진수와 유사합니다. 문자열을 찾기 위해 먼저 길이 1의 숫자 2개(크기 2까지), 길이 2의 숫자 4개(크기 6까지), 길이 3의 숫
위험 관리 사용 가능한 모든 리소스를 관리하고 시스템에서 사용 가능한 리소스를 최대한 활용하는 데 사용되는 접근 방식입니다. 프로젝트 관리자 모든 범주의 위험을 분석하고 런타임 환경에서 프로젝트 작업에 약간의 위험이 있을 수 있습니다. 위험 관리 원칙 리스크 관리에는 5가지 기본 원칙이 있습니다. 그들은: 글로벌 관점: 시스템 및 비즈니스 문제의 맥락에서 소프트웨어의 이러한 위험 분석은 해결될 계획입니다. 이 분석은 더 큰 시스템 정의, 설계 및 구현을 과소평가합니다. 전향 보기: 이 분석은 제품에 대한 미래의 위험에 대한
이 문제에서는 여러 쿼리에 대해 Sieve O(log n)를 사용하여 소인수분해를 계산하는 프로그램을 만들어야 합니다. 일반적인 방법은 O(sqrt(n) ) 시간이 걸리므로 여러 쿼리에서 필요한 시간이 엄청나게 늘어납니다. 먼저 요약하자면 소인수 분해 의 숫자에는 소인수만 포함되며 소인수의 곱은 포함되지 않습니다. 에라토스테네스의 체 주어진 범위 내에서 모든 소수를 생성하는 알고리즘입니다. 솔루션 접근 방식 문제의 해는 수를 나누는 가장 작은 인수를 찾아 인수로 저장하고 인수로 나누어 수를 갱신함으로써 구합니다. 이 과
이 문제에서는 양수 값과 음수 값을 가진 이진 트리가 제공됩니다. 우리의 임무는 바이너리 트리에서 최대 레벨 합계를 찾는 것입니다. 문제 설명: 이진 트리가 있고 이진 트리에서 모든 수준의 합을 찾은 다음 최대값을 반환합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력: 출력: 5 설명: 레벨 1의 요소 합계:3 수준 2의 요소 합계:-3 + 4 =1 레벨 3의 요소 합계:5 - 1 + 6 - 5 =5 솔루션 접근 방식 문제를 해결하려면 레벨 순서 순회를 사용하여 트리를 순회해야 합니다. 그리
이 문제에서는 두 개의 정수 값 n과 k가 주어집니다. 우리의 임무는 최대 K 스왑을 수행하여 가능한 최대 수를 찾는 것입니다. 문제 설명: 여기서 우리는 최대 k자리 숫자를 교환한 후 생성된 최대 숫자를 계산해야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: n =538 k =1 출력: 835 설명: 8과 5를 교환하겠습니다. 솔루션 접근 방식 문제를 해결하려면 숫자의 자릿수를 k번 바꿔서 from이 최대인지 확인해야 합니다. 숫자의 최대 자릿수를 찾은 다음 첫 번째 인덱스에서 요소를 교
이 튜토리얼에서는 두 개의 루프와 온 루프가 있는 요소를 삭제하는 방법을 배울 것입니다. 요소를 삭제할 필요가 없습니다. 삭제 요소를 다음 요소로 교체하기만 하면 됩니다. 두 개의 순회 두 개의 루프를 사용하여 배열에서 요소를 삭제하는 단계를 살펴보겠습니다. 배열을 초기화하고 요소를 삭제합니다. 요소를 삭제하는 함수를 작성하십시오. 배열을 반복하고 요소를 검색합니다. 요소를 찾으면 루프를 끊습니다. 요소가 발견되면 배열의 크기를 줄입니다. 모든 요소를 이전 색인으로 이동합니다. 배열의 새로
이 튜토리얼에서는 주어진 범위에서 요소를 삭제하는 방법을 배울 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 요소를 삭제할 배열과 범위를 초기화합니다. 새 인덱스 변수를 초기화합니다. 배열을 반복합니다. 현재 인덱스가 지정된 범위에 없으면 배열의 요소를 새 인덱스 변수로 업데이트합니다. 새 색인을 증가시키십시오. 새 색인을 반환합니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; int deleteElementsInRa
이 튜토리얼에서는 주어진 값을 가진 트리에서 리프 노드를 삭제하는 방법을 배울 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 이진 트리에 대한 구조체 노드를 작성하십시오. 트리를 순회(inorder, preorder, postorder)하고 모든 데이터를 출력하는 함수를 작성하십시오. 구조체로 노드를 생성하여 트리를 초기화합니다. x 값을 초기화합니다. 주어진 값으로 리프 노드를 삭제하는 함수를 작성하십시오. 두 개의 인수 루트 노드와 x 값을 허용합니다. 루트가 null인 경우 반환합니다.
이 튜토리얼에서는 주어진 값으로 트리에서 리프 노드를 삭제하는 방법을 배울 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 이진 트리에 대한 구조체 노드를 작성하십시오. 트리를 순회(inorder, preorder, postorder)하고 모든 데이터를 출력하는 함수를 작성하십시오. 구조체로 노드를 생성하여 트리를 초기화합니다. x 값을 초기화합니다. 주어진 값으로 리프 노드를 삭제하는 함수를 작성하십시오. 두 개의 인수 루트 노드와 k 값을 허용합니다. 루트가 null인 경우 반환합니다.
이 튜토리얼에서는 연결 리스트에서 중간 노드를 삭제하는 방법을 배울 것입니다. 문제의 해결책은 간단합니다. 한 번에 한 노드를 이동하는 두 개의 포인터와 한 번에 두 개의 노드를 이동하는 다른 포인터가 있습니다. 두 번째 포인터가 마지막 노드에 도달할 때 첫 번째 포인터는 연결 목록의 중간에 있습니다. 문제를 해결하는 단계를 살펴보겠습니다. 연결 목록 노드에 대한 구조체 노드를 작성하십시오. 더미 데이터로 연결 리스트를 초기화합니다. 연결 리스트를 삭제하는 함수를 작성하세요. 연결 목록 헤드 포인터를 사용하
이 튜토리얼에서는 N M 이후의 노드 연결 목록의 노드. 문제를 해결하는 단계를 살펴보겠습니다. 연결 목록 노드에 대한 구조체 노드를 작성하십시오. 더미 데이터로 연결 리스트를 초기화합니다. M노드 이후에 N노드를 삭제하는 함수를 작성하세요. 헤드 포인터로 포인터를 초기화합니다. 연결 목록의 끝까지 반복합니다. M 노드가 될 때까지 포인터를 다음 노드로 이동합니다. N개의 노드 삭제 포인터를 다음 노드로 이동 연결 목록 인쇄 예시 코드를 봅시다. #include <bi
이 튜토리얼에서는 delete 키워드를 사용하여 바이너리 트리를 삭제하는 방법을 배울 것입니다. 이진을 삭제하기 위해 소멸자 멤버 함수를 사용할 것입니다. 소멸자 멤버 함수는 객체가 범위를 벗어나거나 삭제를 호출하여 소멸될 때 자동으로 호출됩니다. 소멸자 멤버 함수는 물결표(~)가 있는 클래스 이름을 가집니다. 그 전에. 문제를 해결하는 단계를 살펴보겠습니다. Node라는 클래스를 작성하십시오. 노드에 대한 데이터를 받는 생성자 함수를 작성하십시오. 소멸자 함수를 작성하십시오. 왼쪽 노드를 삭제합니다.