이 문제에서 정수 값 N이 주어졌습니다. 우리의 임무는 범위(1, N2 ) 각 행의 합 요소가 동일한 방식으로 크기가 NxN인 2D 행렬에서. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - N =4 출력 - 1 6 11 16 2 7 12 13 3 8 9 14 4 5 10 15 각 행의 요소 합은 34입니다. 이 방법을 해결하려면 각 행의 합계가 동일한 방식으로 행렬의 각 요소를 배치해야 합니다. 이를 위해 우리는 탐욕스러운 접근 방식을 사용하여 합이 같도록 올바른 요소를 제자리에 배치합니다. 이를 위해 처
이 문제에서 우리는 세 개의 정수 값 K, N, M을 받습니다. 우리의 임무는 두 기사가 서로 공격하지 않도록 NxM 체스판에 K 기사를 배치하는 것입니다. 유효한 방법이 0인 경우와 유효한 방법이 여러 개인 경우가 있을 수 있습니다. 유효한 모든 케이스를 인쇄해야 합니다. 기사 두 칸 앞으로 이동한 다음 오른쪽 왼쪽으로 한 칸 이동하는 체스 말입니다. 체스판에서 어떤 방향으로든 이동할 수 있습니다. 공격 유효한 이동의 한 기회에 한 조각이 다른 조각과 같은 위치에 있을 수 있는 위치입니다. 문제를 이해하기 위해 예를 들어보겠
이 문제에서는 같은 선에 있는 n개의 점 배열이 제공됩니다. 우리의 임무는 배열의 k 요소를 요소 사이의 최소 거리가 최대화되도록 배치하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - 배열 ={} 출력 - 이 문제를 해결하려면 가능한 최대 최소 거리를 찾아야 합니다. 이러한 문제에 대해 먼저 주어진 배열을 정렬한 다음 중간에 솔루션을 얻을 때까지 이진 검색을 수행해야 합니다. 예시 솔루션 구현을 보여주는 프로그램, #include <bits/stdc++.h> using namespace std;
파이프 및 수조 문제는 매우 흔한 문제이며 일반적으로 경쟁 시험에 포함됩니다. 따라서 파이퍼 와 관련된 학습 질문 및 수조 중요하며 배우기 어렵지 않으므로 해결 방법을 알고 있어야 합니다. 파이프 및 수조 이러한 문제는 탱크/저수조/수조를 채우거나 비우는 데 사용되는 파이프와 관련이 있습니다. 다음은 파이프 의 몇 가지 기본 사항입니다. 및 수조 문제 파이프는 입구 파이프 또는 출구 파이프입니다. 입구 파이프는 탱크를 채우고 출구 파이프는 탱크를 비웁니다. 파이프가 n시간 내에 채워지거나 비워지고 탱크 용량이
이 문제에서는 숫자 n이 주어집니다. 우리의 임무는 모든 Pierpont 소수를 출력하는 것입니다. n보다 작습니다. 피어폰트 프라임 number는 형식의 특수 유형의 소수입니다. p=2i . 3k + 1. 여기서 p는 소수이고 i와 k는 일부 정수입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - n =50 출력 - 2, 3, 5, 7, 13, 17, 19, 37 이 문제를 해결하려면 조건을 따르는 모든 소수를 찾아야 합니다. 이를 위해 우리는 2와 3의 거듭제곱을 가진 숫자를 찾을 것입니다. 그리고 모든 소
이 문제에서 N개의 인덱스 위치를 나타내는 n개의 요소로 구성된 배열 arr[]이 주어지고 C개의 자석이 있습니다. 우리의 임무는 가장 가까운 두 자석 사이의 거리가 가능한 한 크게 되도록 이 모든 자석을 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - 배열 ={ 1, 4, 6,12, 28, 44 } C =4 출력 − 11 이 문제를 해결하기 위해 최대 거리까지 이진 검색을 사용합니다. 최대 거리를 고정한 다음 0에서 최대 거리 사이의 모든 자석을 배치하는 것이 유효합니다. 그런 다음 이진 검색을 적
이 문제에서 배열 arr[]와 두 개의 정수 M과 K가 주어집니다. 우리의 임무는 주어진 배열의 요소를 사용하여 배열을 만드는 것입니다. 새 배열의 크기는 M이어야 하며 크기가 K보다 큰 하위 배열은 모든 요소를 동일하게 가질 수 없습니다. 생성된 배열에서 가능한 최대 합계를 출력해야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - arr[] ={1, 2, 4, 5, 7 }, M =5, K =2 설명 - {7, 7, 5, 7, 7} 조건을 만족하는 배열 생성. 여기서 크기가 2보다 큰 하위 배열은 모든 요소를
이 문제에서는 이진 트리가 제공됩니다. 우리의 임무는 이진 트리를 지그재그 형태로 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 위의 이진 트리의 지그재그 순회는 3 5 1 8 7 0 4 이 문제를 해결하려면 이진 트리 수준을 수준별로 탐색해야 합니다. 순회 순서는 각 레벨 후에 반전됩니다. 이제 두 개의 스택(현재 및 다음)과 하나의 값을 주문에 사용합니다. 먼저 현
이 문제에서는 2차원 행렬이 주어집니다. 우리의 임무는 행렬의 모든 요소를 대각선 순서로 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 1 2 34 5 67 8 9 출력 - 14 27 5 38 69 매트릭스를 지그재그 형태나 대각선 형태로 인쇄할 때 따라가는 패턴을 봅시다. 이것이 대각선 순회가 작동하는 방식입니다. 출력의 줄 수는 항상 2D 행렬의 행과 열에 따라 다릅니다. 2D 행렬 mat[r][c]의 경우 r+c-1 출력 라인이 됩니다. 예시 이제 프로그램에 대한 솔루션을 살펴보겠습니다.
이 문제에서는 이진 트리가 제공됩니다. 우리의 임무는 트리의 지그재그 레벨 순서 순회를 인쇄하는 것입니다. 이 순회에서는 단일 대기열만 사용합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 출력 - 3 1 7 2 8 9 5 단일 대기열을 사용하여 이 문제를 해결하기 위해 대기열 및 방향 플래그와 함께 추가 분리 플래그를 고소합니다. 이제 레벨별로 트리 레벨을 탐색하고 루트 요소를 삽
초기화 제로 C++에서 개체의 초기 값을 0으로 설정하고 있습니다. 구문 T{} ; char array [n] = “”; 제로 초기화가 수행되는 상황은 - 정적 또는 스레드 로컬 저장소가 있는 명명된 변수는 0으로 초기화됩니다. 비클래스 유형 및 생성자가 없는 클래스 멤버에 대한 값의 초기화로 사용됩니다. 길이가 할당할 문자 수보다 클 때 문자 배열을 초기화하는 데 사용됩니다. 기억해야 할 점 정적 변수 및 스레드 로컬 변수와 같은 일부 유형의 변수는 먼저 0으로 초기화된 다음 호출될
깊이 버퍼 라고도 하는 z 버퍼 숨겨진 표면 감지에 사용되는 방법입니다. 은폐된 표면 감지 투명한 물체와 표면이 있는 모든 그림의 경우. 이 경우 다른 개체 뒤에 있는 개체가 숨겨집니다. 이미지를 제대로 보려면 이러한 숨겨진 표면을 제거해야 합니다. 식별을 숨겨진 표면 문제라고 합니다. z-buffer에서 z축의 표면을 깊이로 비교합니다. 알고리즘 Step 1: initialize the depth of all pixel max. d(i,j) = infinity Step 2: Initialize color
Z 알고리즘 선형 시간에 문자열에서 패턴의 발생을 찾는 데 사용됩니다. 문자열의 길이가 n이고 검색할 패턴의 크기가 m인 경우 해결하는 데 걸리는 시간은 O(m+n) 순서가 됩니다. . z-알고리즘은 Z 배열을 사용하여 패턴의 발생을 찾습니다. Z 배열 문자열과 길이가 같은 배열입니다. z-array의 각 요소는 문자열 자체의 접두사로 사용할 수 있는 I부터 시작하는 문자열의 가장 긴 부분 문자열의 길이로 구성됩니다. 알고리즘 이 알고리즘에서는 길이가 n인 문자열 S와 길이가 m인 검색할 패턴 p가 제공됩니다. 우리는 z 배
이 문제에서는 n개의 요소와 정수 값 k의 배열이 제공됩니다. 우리의 임무는 k와 동일한 비트를 설정한 배열의 모든 요소에 대한 XOR을 찾는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 array = {2, 12, 44, 103, 17} , K =3 출력 44 이 문제를 해결하기 위해 배열의 모든 요소의 세트 비트를 세고 k와 비교합니다. 설정된 비트 수가 k와 같으면 벡터로 푸시하고 벡터의 모든 요소에 대한 XOR을 찾습니다. 설정된 비트 수를 찾기 위해 __builtin_popcount()를 사용합니다.
모든 유형의 변수가 제공되며 작업은 log1p() 함수를 사용하여 결과를 찾는 것입니다. log1p()는 인수 a를 취하고 반환 값도 갖는 분석 함수입니다. 구문 double log1p (double x); Where x ranges between [-1, ?] float log1p (float x); 반품 유형 − 이 함수는 인수가 -1보다 크면 0이 아닌 값을 반환하고 그렇지 않으면 숫자가 아닌 값을 반환합니다. 예시 입력 a = 20.34 출력 3.06058 입력 a = 0.0 출력 0 예시 #include <cmath
이 문제에서는 N x N 행렬과 일부 쿼리가 제공되며 각 쿼리에는 이 행렬에서 생성된 부분 행렬의 왼쪽 위 모서리와 오른쪽 아래 모서리가 포함됩니다. 우리의 임무는 쿼리에 의해 정의된 부분행렬의 모든 요소에 대한 XOR을 찾는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[][] = {{1, 2, 3} {4, 5, 6} {7, 8, 9}} Querries: {0,0, 1,2} , {1, 2, 2, 2} 출력 1 15 설명 querry 1 : 1^2^3^4^5^6 querry 2 : 6^9 이 문제를 해결하기
이 문제에서는 arr[]과 배열에서 L에서 R 사이의 범위에 있는 일부 쿼리가 제공됩니다. 우리의 임무는 L에서 R 사이의 하위 배열의 XOR을 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - 배열 ={1, 4, 5, 7, 2, 9} L =1, R =5 출력 - 설명 − 4^5^7^2^9 이 문제를 해결하기 위해 다음 관찰을 기반으로 배열을 만듭니다. 여러 비트를 XOR합니다. 1이 홀수이면 결과는 1이 되고 그렇지 않으면 결과는 0이 됩니다. 이제 1의 개수를 저장할 2차원 배열 개수
XOR 암호 또는 XOR 암호화는 무차별 대입 방식으로 해독할 수 없는 데이터 암호화 방법입니다. 무차별 대입 방식은 임의의 암호화 키를 생성하여 올바른 키와 일치시키는 방식입니다. 이 암호화 방법을 구현하기 위해 암호화 키(임의의 문자)를 정의하고 해당 암호화 키로 문자열의 모든 문자에 대해 XOR을 수행합니다. 이렇게 하면 문자열의 모든 문자가 암호화됩니다. 암호화 구현을 보여주는 프로그램 − 예시 #include<iostream> #include<string.h> using namespace std;
이 문제에서는 숫자가 주어집니다. 우리의 임무는 숫자의 이진 표현에서 0과 1의 개수에 대한 XOR을 찾는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 n = 9 출력 0 설명 binary = 1001 Count of 0s = 2 Count of 1s = 2 2 ^ 2 = 0 이 문제를 해결하기 위해 먼저 해당하는 2진수의 수를 변환한 다음 숫자의 각 비트를 반복하고 0과 1을 카운트한 다음 0의 카운트와 1의 카운트의 XOR을 찾습니다. 위의 솔루션을 설명하는 프로그램, 예시 #include<iostrea
C++ 프로그래밍 언어에는 논리 연산자 대신 사용할 수 있는 키워드가 있습니다. 키보드가 &&, !, || 등과 같은 기호를 지원하지 않을 때 키워드는 처음에 c에서 사용되었습니다. 이제 다음은 C++에서 작성된 논리 연산자 버전입니다. . 연산자 및 작성된 버전은 - 연산자 기호 문서 버전 그리고 연산자 && 및 또는 연산자 || 또는 연산자가 아님 ! 아님 연산자와 같지 않음 != not_eq 비트 및 연산자 & 비트와 비트 또는 연산자 | 비터 비트 XOR 연산자 ^ 그리고 연산자와 같음 &= 및_eq