Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++
  • C 프로그래밍
  •   
  • C++
  •   
  • Redis
  •   
  • BASH 프로그래밍
  •   
  • Python
  •   
  • Java
  •   
  • 데이터 베이스
  •   
  • HTML
  •   
  • JavaScript
  •   
  • 프로그램 작성
  •   
  • CSS
  •   
  • Ruby
  •   
  • SQL
  •   
  • IOS
  •   
  • Android
  •   
  • MongoDB
  •   
  • MySQL
  •   
  • C#
  •   
  • PHP
  •   
  • SQL Server
  • C++

    1. C++에서 주어진 세 개의 정렬된 배열에서 가장 가까운 세 개의 요소 찾기

      최대(|A[i] – B[i]|, |B[j] – C [k]|, |C[k] – A[i]|)가 최소화됩니다. 따라서 A =[1, 4, 10], B =[2, 15, 20] 및 C =[10, 12]인 경우 출력 요소는 10, 15, 10이며 이 세 가지는 A, B 및 C입니다. A, B 및 C의 크기가 각각 p, q 및 r이라고 가정합니다. 이제 이 문제를 해결하려면 다음 단계를 따르세요. - i :=0, j :=0 및 k :=0 이제 i

    2. C++에서 a+b =c+d가 되도록 배열에서 4개의 요소 a, b, c 및 d를 찾습니다.

      정수 목록이 있다고 가정합니다. 우리의 임무는 a+b =c+d가 되도록 (a, b) 및 (c, d)와 같은 두 쌍으로 4개의 고유한 정수를 찾는 것입니다. 답이 여러 개인 경우 하나만 인쇄하십시오. 배열 요소가 A =[7, 5, 9, 3, 6, 4, 2]와 같다고 가정하면 쌍은 (7, 3) 및 (6, 4)가 될 수 있습니다. 여기서 우리는 해싱 기술을 사용할 것입니다. 해시 테이블의 값으로 쌍으로 합계를 키로 사용합니다. 이 문제를 해결하려면 다음 단계를 따라야 합니다. 0 ~ n – 1 범위의 i에 대해 다음을 수행합니다. i

    3. C++에서 O(n) 시간 미만으로 제한된 범위의 배열에서 각 요소의 빈도 찾기

      정수 배열이 있다고 가정합니다. 배열은 A이고 크기는 n입니다. 우리의 임무는 O(n) 시간보다 짧은 배열의 모든 요소의 빈도를 찾는 것입니다. 요소의 크기는 M과 같이 하나의 값보다 작아야 합니다. 여기서는 이진 검색 방식을 사용합니다. 여기서 끝 요소가 다른 경우 배열을 재귀적으로 두 부분으로 나눕니다. 끝 요소가 모두 같으면 배열의 모든 요소가 배열이 이미 정렬된 것과 동일하다는 의미입니다. 예시 #include<iostream> #include<vector> using namespace std; void

    4. C++에서 a, n 및 c가 1에서 10^9까지 다양할 수 있는 gcd(a^n, c) 찾기

      우리는 하나의 숫자가 (109 ^ 109)만큼 클 수 있는 두 숫자의 GCD를 찾아야 하며, 이는 long 또는 기타와 같은 일부 데이터 유형에 저장할 수 없습니다. 따라서 숫자가 a =10248585, n =1000000, b =12564이면 GCD(a^n, b)의 결과는 9가 됩니다. 숫자가 매우 길기 때문에 유클리드 알고리즘을 사용할 수 없습니다. O(log n) 복잡성의 모듈식 지수를 사용해야 합니다. 예시 #include<iostream> #include<algorithm> using namespac

    5. C++에서 하나의 불일치가 있는 문자열이 배열에 포함되어 있는지 확인

      문자열 s와 문자열 A의 또 다른 배열이 있다고 가정합니다. 배열에 길이가 다른 현재 문자열과 한 문자 차이가 있는 문자열이 포함되어 있는지 확인해야 합니다. 문자열이 banana이고 배열이 [bana, orange, banaba, banapy]와 같다고 가정합니다. 바나나와는 다릅니다. 이 문제를 해결하기 위해 몇 가지 단계를 따를 것입니다 - 주어진 문자열 s를 순회하고 배열의 모든 문자열을 확인한 다음 arr −의 모든 문자열에 대해 다음 단계를 따르십시오. arr의 문자열이 문자열 s와 길이가 같은지 확인

    6. C++에서 표현식에 중복 괄호가 있는지 여부 찾기

      표현식 exp가 있다고 가정하고 exp 주위에 중복된 괄호 세트가 있는지 여부를 확인해야 합니다. 하나의 하위 표현식이 둘 이상의 괄호 세트로 둘러싸여 있는 경우 표현식에는 중복 괄호가 있습니다. 예를 들어 표현식이 −와 같은 경우 (5+((7−3))) 여기서 하위 표현식(7 – 3)은 두 개의 괄호 쌍으로 둘러싸여 있으므로 중복 괄호입니다. 이 문제를 해결하기 위해 스택을 사용합니다. 우리는 exp의 각 문자를 반복하고 문자가 여는 괄호 ( 또는 연산자 또는 피연산자 중 하나라도 스택에 푸시합니다. 문자가 닫는 괄호

    7. 주어진 숫자가 무한 시퀀스에 존재하는지 C++에 존재하지 않는지 찾기

      세 개의 정수 a, b, c가 있다고 가정합니다. 무한 수열에서 가 첫 번째 항이고 c가 공차라고 가정합니다. b가 시퀀스에 존재하는지 여부를 확인해야 합니다. 값이 a =1, b =7 및 c =3과 같다고 가정하면 시퀀스는 1, 4, 7, 10, …이므로 시퀀스에 7이 있으므로 출력은 yes가 됩니다. 이 문제를 해결하려면 다음 두 단계를 따라야 합니다. c =0이고 a =b이면 yes를 인쇄하고 a가 b와 같지 않으면 no를 반환합니다. 0일 때 음이 아닌 정수 k에 대해 방정식은 b =a + k*c가 충족되어야

    8. C++에서 다른 문자열에서 한 문자열의 모든 발생 인덱스 찾기

      문자열 str과 또 다른 하위 문자열 sub_str이 있다고 가정하고 str에서 sub_str의 모든 발생에 대한 인덱스를 찾아야 합니다. str이 aabbababaabbbbabbaaabba이고 sub_str이 abb라고 가정하면 인덱스는 1 9 13 18이 됩니다. 이 문제를 해결하기 위해 C++ STL에서 substr() 함수를 사용할 수 있습니다. 이 함수는 검사를 시작할 위치의 초기 위치와 sub_str의 길이가 sub_str과 같으면 부분 문자열의 길이를 가져온 다음 위치를 반환합니다. 예시 #include<iost

    9. C++에서 모든 간격의 교차점 찾기

      {L, R} 형식의 N 간격이 있고 L이 시작 시간이고 R이 종료 시간이라고 가정합니다. 모든 구간의 교차점을 찾아야 합니다. 교차는 주어진 모든 간격 내에 있는 간격입니다. 해당 항목이 없으면 -1을 반환합니다. 예를 들어 간격이 [{1, 6}, {2, 8}, {3, 10}, {5, 8}인 경우 출력 간격은 {5, 6}입니다. 이 문제를 해결하기 위해 다음 단계를 따르십시오 - 첫 번째 간격이 마지막 간격이라고 생각하십시오. 두 번째 구간부터 교차로를 찾아보세요. 두 가지 경우가 있을 수 있습니다. [L1, R1

    10. C++에서 2의 거듭제곱이고 합이 N인 k 수 찾기

      두 개의 숫자 N과 K가 있다고 가정합니다. 작업은 2의 거듭제곱이고 합이 N인 K 숫자를 인쇄하는 것입니다. 가능하지 않으면 -1을 반환합니다. . N =9이고 K =4라고 가정하면 출력은 4 2 2 1이 되고 합은 9이고 요소의 수는 4이고 각각은 2의 거듭제곱입니다. 이 문제를 해결하려면 다음 단계를 따라야 합니다 - k가 N에 설정된 비트 수보다 작거나 N보다 크면 -1을 반환합니다. 우선 순위 대기열에 설정된 비트에서 2의 거듭제곱을 추가합니다. K개의 요소를 얻을 때까지 우선 순위 대기열을 시작한 다음

    11. C++에서 a + b + c =d가 되도록 배열에서 가장 큰 d 찾기

      정수 집합이 있다고 가정합니다. d =a + b + c인 숫자 d를 찾아야 하고 (a + b + c)를 최대화해야 하며, a, b, c, d가 모두 집합에 존재합니다. 세트는 최소 하나의 요소와 최대 1000개의 요소를 보유합니다. 각 요소는 유한한 수입니다. 집합이 {2, 3, 5, 7, 12}이면 12가 가장 큽니다. d. 이것은 2 + 3 + 7로 나타낼 수 있습니다. 이 문제를 해결하기 위해 해싱 기술을 사용할 수 있습니다. (a + b)의 모든 쌍의 합계를 해시 테이블에 저장한 다음 모든 쌍 (c, d)을 통과하고 검색(

    12. C++에서 배열 숫자의 곱에서 마지막 k 자리 찾기

      A라고 하는 n개의 요소 배열이 있다고 가정합니다. 또 다른 숫자 k가 있습니다. 우리의 임무는 배열 A에 있는 요소의 곱의 마지막 k 자리를 찾는 것입니다. A =[15, 22, 13, 19, 17]이고 곱이 1385670이고 마지막 k =3 자리가 670이라고 가정합니다. 이 문제를 해결하기 위해 모듈로 10k 아래의 숫자를 곱합니다. . 예시 #include<iostream> #include<cmath> using namespace std; int displayLastKNumbers(int array[]

    13. C++에서 숫자의 비트를 효율적으로 반전시키는 프로그램

      이 튜토리얼에서는 숫자의 비트를 효율적으로 반전시키는 프로그램에 대해 논의할 것입니다. 이를 위해 음수가 아닌 숫자가 제공됩니다. 우리의 임무는 숫자를 이진 형식으로 변환하고 숫자의 이진 비트를 반전시키는 것입니다. 그런 다음 마지막으로 숫자에 해당하는 10진수를 인쇄합니다. 예시 #include <bits/stdc++.h> using namespace std; //inverting bits of number int invert_bit(int n){    int x = log2(n) ;   &

    14. C++에서 연결 목록(반복 및 재귀)의 길이 찾기

      여기에서는 반복 및 재귀 접근 방식을 사용하여 연결 목록의 길이를 찾는 방법을 볼 것입니다. 헤드 포인터가 주어지면 길이를 얻으려면 다음 단계를 따라야 합니다. 반복적 접근의 경우 - 현재 포인터가 null이 아닐 때까지 목록의 선두를 잡고 다음 노드로 이동하여 개수를 늘립니다. 재귀적 접근의 경우 - 헤드를 인수로 전달, 기본 조건은 인수가 null인 경우 0을 반환하고, 그렇지 않으면 재귀적으로 목록에 들어가 현재 노드에서 다음 노드를 보내고 1 + 하위 목록의 길이를 반환합니다. 예시 #include

    15. C++에서 배열의 히스토그램을 만드는 프로그램

      이 튜토리얼에서는 배열 내부에 주어진 데이터로 히스토그램을 만드는 프로그램에 대해 논의할 것입니다. 이를 위해 배열 내부에 정수 값이 제공됩니다. 우리의 임무는 좌표 x와 y의 값을 배열에 제공된 값과 동일하게 유지하는 히스토그램을 그리는 것입니다. 예 #include <bits/stdc++.h> using namespace std; void make_histogram(int arr[], int n){    int maxEle = *max_element(arr, arr + n);    

    16. C++에서 한 번의 플립으로 이진 표현에서 가장 긴 1 시퀀스 찾기

      하나의 정수 n이 있다고 가정합니다. 그 안에서 우리는 1의 가장 긴 시퀀스를 생성하기 위해 1비트 플립을 만들 수 있습니다. 숫자가 13이라고 가정하고 이진 표현은 1101입니다. 0에서 1로 1비트 뒤집기를 하면 1111이 됩니다. 이것은 1의 가장 긴 시퀀스입니다. 이 문제를 해결하기 위해 주어진 숫자의 비트를 살펴보겠습니다. 현재 1의 시퀀스 길이와 이전 1의 시퀀스 길이를 추적합니다. 0이 발견되면 이전 길이를 업데이트합니다. 따라서 다음 비트가 1이면 이전 길이를 현재 길이로 설정해야 합니다. 다음 값이 0이면 이전 값

    17. C++의 이진 트리에서 최대 수준 제품 찾기

      하나의 이진 트리가 주어진다고 가정합니다. 그것은 긍정적이고 부정적인 노드가 있습니다. 각 수준에서 최대 제품을 찾아야 합니다. 이것이 트리라고 생각하면 수준 0의 곱은 4이고 수준 1의 곱은 2 * -5 =-10이고 수준 2의 곱은 -1 * 3 * -2 * 6 =36입니다. 따라서 이것은 최대 1개. 이를 해결하기 위해 우리는 트리의 레벨 오더 순회를 수행할 것이며, 순회하는 동안 서로 다른 레벨의 노드를 개별적으로 수행하는 프로세스를 수행할 것입니다. 그런 다음 최대 제품을 얻으십시오. 예 #include<iostr

    18. C++에서 두 행렬을 곱하는 프로그램

      이 자습서에서는 두 행렬을 곱하는 프로그램에 대해 설명합니다. 이를 위해 두 개의 행렬이 주어지며 우리의 임무는 두 행렬의 곱을 출력하는 것입니다. 유일한 조건은 첫 번째 행렬의 열 수가 두 번째 행렬의 행 개수와 같아야 한다는 것입니다. 예시 #include <iostream> using namespace std; #define N 4 //multiplying the elements of both matrices void calc_product(int mat1[][N], int mat2[][N], int res[][N

    19. C++에서 N보다 작거나 같은 숫자 중 숫자의 최대 곱 찾기

      0이 있다고 가정합니다. 작업은 N보다 작거나 같은 숫자 중에서 숫자의 최대 곱을 찾는 것입니다. N이 390이면 결과는 다음과 같습니다. 216, 389는 최대 곱이 3 * 8 * 9 =216이므로 이 문제를 해결하기 위해 재귀적 접근 방식을 사용합니다. 따라서 N =0이면 1을 반환하고 숫자 N <10이면 N을 반환하고 그렇지 않으면 max(max_product(N/10) * (N mod 10), max_product((N/10) - 1)*9를 반환합니다. ) 예시 #include<iostream> using nam

    20. C++에서 1부터 n까지의 숫자 패턴을 이용하여 알파벳 'N'을 출력하는 프로그램

      이 튜토리얼에서는 1에서 n까지의 숫자 패턴을 사용하여 N알파벳을 인쇄하는 프로그램에 대해 설명합니다. 이를 위해 우리는 영어 알파벳 N을 인쇄해야 합니다. 우리의 임무는 편지의 크기를 결정하고 1에서 n까지의 숫자를 사용하여 다시 인쇄하는 것입니다. 예시 #include <iostream> using namespace std; //printing the letter N void print_N(int N){    int index, side_index, size;    int Righ

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:104/300  20-컴퓨터/Page Goto:1 98 99 100 101 102 103 104 105 106 107 108 109 110