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

    1. O(n) 시간 및 O(1) 추가 공간에서 중복 찾기 - C++에서 1 설정

      0에서 n-1까지의 숫자 목록이 있다고 가정합니다. 숫자는 가능한 한 많이 반복될 수 있습니다. 추가 공간을 차지하지 않고 반복되는 숫자를 찾아야 합니다. n =7의 값이고 목록이 [5, 2, 3, 5, 1, 6, 2, 3, 4, 5]와 같은 경우. 답은 5, 2, 3입니다. 이 문제를 해결하려면 다음 단계를 따라야 합니다. 목록의 각 요소 e에 대해 다음 단계를 수행하십시오. - sign :=A[e의 절대값] 부호가 양수이면 음수로 만듭니다. 그렇지 않으면 반복입니다. 예시 #include<iostream> #

    2. C++를 사용하여 트리의 홀수 레벨에 있는 노드를 인쇄하는 프로그램

      이 튜토리얼에서는 주어진 바이너리 트리의 홀수 레벨에 있는 노드를 출력하는 프로그램에 대해 논의할 것입니다. 이 프로그램에서 루트 노드의 레벨은 1로 간주되고 동시에 대체 레벨은 다음 홀수 레벨입니다. 예를 들어 다음 이진 트리가 주어진다고 가정해 보겠습니다. 그러면 이 이진 트리의 홀수 레벨에 있는 노드는 1, 4, 5, 6이 됩니다. 예시 #include <bits/stdc++.h> using namespace std; struct Node {    int data;    

    3. C++에서 주어진 제약 조건에서 중복 찾기

      6개의 다른 숫자가 있는 목록이 있다고 가정합니다. 하나의 숫자만 다섯 번 반복됩니다. 따라서 배열에는 총 10개의 요소가 있습니다. 두 가지 비교만 사용하여 중복 숫자를 찾습니다. 목록이 [1, 2, 3, 4, 4, 4, 4, 4, 5, 6]과 같으면 출력은 4입니다. 숫자가 10개뿐이므로 모든 유형의 중복 숫자에 대해 숫자 범위가 인덱스 3에서 5까지 배치됩니다. 이 인덱스를 확인하여 결과를 찾을 수 있습니다. 예시 #include<iostream> using namespace std; int getDuplicate

    4. C++에서 연속 요소의 XOR을 사용하여 배열 요소 찾기

      n개의 요소 목록을 찾아야 한다고 생각해 보십시오. 그러나 실제 배열의 두 연속 요소에 대한 XOR 값이 있습니다. 또한 실제의 첫 번째 요소가 제공됩니다. 따라서 배열 요소가 a, b, c, d, e, f이면 주어진 배열은 a^b, b^c, c^d, d^e 및 e^f가 됩니다. 첫 번째 숫자가 주어지면 모든 숫자를 찾는 데 도움이 될 수 있습니다. 실제 배열의 두 번째 요소를 찾으려면 두 번째 요소 c =b ^ arr[1]에 대해 b =a ^ arr[i] 등을 수행해야 합니다. 예 #include<iostream> u

    5. C++에서 첫 번째 배열에 있고 두 번째에는 없는 요소 찾기

      두 개의 배열 A와 B가 있다고 가정합니다. 요소가 거의 없습니다. 집합 A에는 있지만 집합 B에는 없는 요소를 찾아야 합니다. 그런 상황을 생각하고 A와 B를 집합으로 간주하면 기본적으로 집합 나누기 연산입니다. A와 B 사이에 설정된 차이는 해당 요소를 반환합니다. 예 #include<iostream> #include<set> #include<algorithm> #include<vector> using namespace std; void setDiffResults(int A[], int

    6. C++의 열 제목에서 Excel 열 번호 찾기

      Excel 열 번호는 알파벳순이라는 것을 알고 있습니다. A에서 시작하여 Z 다음에는 AA, AB, ZZ, 다시 AAA, AAB, ZZZ 순으로 진행됩니다. 따라서 1열은 A, 27열은 Z입니다. 여기에서 열의 개수가 주어졌을 때 열 문자를 얻는 방법을 살펴보겠습니다. 따라서 열 번호가 80이면 CB가 됩니다. 숫자 n이 있고 그 값이 28이라고 가정하면 26으로 알림을 받아야 합니다. 나머지가 0이면 숫자는 26, 52 등입니다. 그런 다음 출력 문자열에 Z를 넣습니다. n의 값은 n/26 – 1이 됩니다. 그리고 나머지가 0이

    7. C++에서 배열에서 가장 작은 값의 빈도 찾기

      여기서 우리는 배열에서 가장 작은 요소의 빈도를 찾는 방법을 볼 것입니다. 배열 요소가 [5, 3, 6, 9, 3, 7, 5, 8, 3, 12, 3, 10]이라고 가정합니다. 여기서 가장 작은 요소는 3이고 이 요소의 빈도는 4입니다. 따라서 출력은 4입니다. . 이 문제를 해결하기 위해 목록의 가장 작은 요소를 찾은 다음 첫 번째 숫자의 발생 횟수를 세어 결과가 됩니다. 예시 #include<iostream> using namespace std;    int min_element(int arr[],

    8. C++에서 배열을 동일한 합계의 두 하위 배열로 나눌 수 있는지 확인

      배열 A가 있다고 가정합니다. 배열을 합이 같은 두 부분으로 나눌 수 있는지 확인해야 합니다. 요소가 [6, 1, 3, 2, 5]이고 [6, 1] 및 [2, 5]가 두 개의 하위 배열이 될 수 있다고 가정합니다. 이 문제는 다음 규칙을 따르면 쉽게 해결할 수 있습니다. 먼저 배열의 모든 요소의 합을 찾아야 하고, 배열의 각 요소에 대해 total_sum - 지금까지 찾은 요소의 합을 사용하여 올바른 합을 계산할 수 있습니다. 예시 #include<iostream> #include<numeric> using n

    9. C++에서 n을 k개의 곱으로 작성할 수 있는지 확인

      숫자 N이 있다고 가정합니다. 또 다른 숫자 k가 있습니다. k 개의 숫자를 사용하여 숫자를 나타낼 수 있는지 여부를 확인해야 합니다. 숫자가 54이고 k =3이라고 가정하면 [2, 3, 9]와 같은 숫자가 인쇄되고, 표현할 수 없으면 인쇄합니다. 이를 해결하기 위해 N의 모든 소인수를 찾아 벡터에 저장한 다음 1보다 큰 k 숫자를 찾기 위해 벡터의 크기가 k보다 큰지 확인합니다. 크기가 k보다 작으면 -1을 반환하고, 그렇지 않으면 처음 k-1 인수를 인쇄하고 마지막 인수는 나머지 모든 숫자의 곱이 됩니다. 예시 #include

    10. C++에서 주어진 값에 가장 가까운 k개의 요소 찾기

      요소가 거의 없는 배열 A가 있다고 가정합니다. 두 개의 다른 값 X와 k가 있습니다. 우리의 임무는 배열 A에서 X의 가장 가까운 요소의 k개를 찾는 것입니다. 요소 X가 배열에 있으면 출력에 표시되지 않습니다. A =[12, 16, 22, 30, 35, 39, 42, 45, 48, 50, 53, 55, 56]이고 X =35, k =4인 경우 출력은 30, 39, 42, 45입니다. . 이를 해결하기 위해 이진 검색 접근 방식을 사용합니다. 이것을 사용하여 우리는 교차점을 얻을 것입니다. 교차점의 인덱스가 발견되면 O(k) 시간

    11. C++의 정렬되지 않은 배열에서 k개의 가장 가까운 숫자 찾기

      요소가 거의 없는 배열 A가 있다고 가정합니다. 배열이 정렬되지 않았습니다. 두 개의 다른 값 X와 k가 있습니다. 우리의 임무는 배열 A에서 X의 가장 가까운 요소의 k개를 찾는 것입니다. 요소 X가 배열에 있으면 출력에 표시되지 않습니다. A =[48, 50, 55, 30, 39, 35, 42, 45, 12, 16, 53, 22, 56] 및 X =35, k =4인 경우 출력은 30, 39, 42, 45입니다. . 이를 해결하기 위해 힙 데이터 구조를 사용합니다. 단계는 아래와 같습니다 - 첫 번째 k 요소와 차이의 최대

    12. C++에서 조건부 연산자를 사용하지 않고 배열에서 가장 큰 요소 찾기

      일부 요소가 있는 배열 A가 있다고 가정합니다. 배열 A에서 가장 큰 요소를 찾아야 하지만 제약 조건은 조건 연산자를 사용할 수 없다는 것입니다. 따라서 A =[12, 63, 32, 24, 78, 56, 20]이면 최대 요소는 78이 됩니다. 이 문제를 해결하기 위해 비트 AND 연산을 사용합니다. 처음에는 배열에 하나의 추가 요소 INT_MAX(모든 비트가 1인 경우)를 삽입합니다. 그런 다음 배열에서 모든 쌍의 최대 AND 값을 찾으려고 합니다. 이렇게 얻은 최대값에는 INT_MAX의 AND 값과 원래 배열의 가장 큰 요소가

    13. C++에서 주어진 문자열의 일부 문자를 삭제하여 사전에서 가장 큰 단어 찾기

      사전과 문자열 s가 있다고 가정합니다. 문자열 s의 일부 문자를 삭제하여 구성할 수 있는 사전에서 가장 긴 문자열을 찾습니다. s가 apbreoigroakml이고 사전에 {prog, ram, program}이 있다고 가정하면 결과는 program이 됩니다. 이를 해결하기 위해 우리는 모든 사전 단어를 탐색하고 각 단어에 대해 주어진 문자열의 하위 시퀀스가 ​​그러한 모든 단어 중 가장 긴지 확인합니다. 마지막으로 주어진 문자열을 하위 시퀀스로 사용하여 가장 긴 단어를 반환합니다. 예시 #include<iostream>

    14. C++에서 n개의 정수 배열에서 모든 두 번째 요소를 삭제한 후 마지막 요소 찾기

      1에서 n까지의 정수를 포함하는 하나의 원형 배열이 있다고 가정합니다. 첫 번째 요소부터 시작하여 모든 두 번째 요소를 삭제한 후 목록에 남아 있는 마지막 요소를 찾습니다. 입력이 5이면 배열은 [1, 2, 3, 4, 5]가 됩니다. 1부터 시작합니다. 각 두 번째 요소를 삭제한 후 다음과 같이 됩니다. - 1 0 3 4 5 1 0 3 0 5 0 0 3 0 5 0 0 3 0 0 따라서 목록에 남아 있는 요소는 3입니다. 우리는 재귀를 사용하여 이 문제를 해결할 것입니다. n이 짝수라고 가정합니다. 숫자 2, 4, 6은 제거되고

    15. C++에서 문자열에서 문자의 마지막 인덱스 찾기

      문자열 str이 있다고 가정합니다. 다른 캐릭터 ch가 있습니다. 우리의 임무는 문자열에서 ch의 마지막 인덱스를 찾는 것입니다. 문자열이 Hello이고 문자 ch =l이라고 가정하면 마지막 인덱스는 3이 됩니다. 이를 해결하기 위해 목록을 오른쪽에서 왼쪽으로 순회하고 문자가 l과 같지 않으면 인덱스를 줄이고 일치하면 중지하고 결과를 반환합니다. 예 #include<iostream> using namespace std; int getLastIndex(string& str, char ch) {   &nbs

    16. C++의 행렬에서 각 열의 최대 요소 찾기

      행렬이 있다고 가정하고 우리의 임무는 해당 행렬의 각 열의 최대 요소를 찾아 인쇄하는 것입니다. 이 작업은 간단합니다. 각 열에 대해 최대값을 재설정하고 최대값 요소를 찾아 인쇄합니다. 더 나은 이해를 위해 코드를 살펴보겠습니다. 예시 #include<iostream> #define MAX 10 using namespace std; void largestInEachCol(int mat[][MAX], int rows, int cols) {    for (int i = 0; i < cols; i++)

    17. C++의 행렬에서 각 행의 최대 요소 찾기

      행렬이 있다고 가정하고 우리의 임무는 해당 행렬의 각 행의 최대 요소를 찾아 인쇄하는 것입니다. 이 작업은 간단합니다. 각 행에 대해 최대값을 재설정하고 최대값 요소를 찾아 인쇄합니다. 더 나은 이해를 위해 코드를 살펴보겠습니다. 예시 #include<iostream> #define MAX 10 using namespace std; void largestInEachRow(int mat[][MAX], int rows, int cols) {    for (int i = 0; i < rows; i++)

    18. C++에서 재귀적으로 단일 연결 목록의 중간 찾기

      숫자 목록이 있다고 가정해 보겠습니다. 우리의 작업은 재귀를 사용하여 연결 목록의 중간을 찾는 것입니다. 따라서 목록 요소가 [12, 14, 18, 36, 96, 25, 62]이면 중간 요소는 36입니다. 이 문제를 해결하기 위해 목록의 총 노드 수를 재귀적으로 계산하고 이의 절반을 수행합니다. 그런 다음 각 호출에서 n만큼 감소하는 재귀를 통해 롤백하고 n이 0인 요소를 반환합니다. 예시 #include<iostream> #include<stack> using namespace std; class Node{

    19. C++에서 숫자의 최상위 세트 비트 찾기

      여기서 숫자가 주어지면 설정되어 있는 Most Significant Bit 값을 찾는 방법을 알아보겠습니다. 값은 2의 거듭제곱입니다. 따라서 숫자가 10이면 MSB 값은 8이 됩니다. MSB의 위치를 ​​찾은 다음 k번째 위치에서 set-bit로 숫자의 값을 찾아야 합니다. 예시 #include<iostream> #include<cmath> using namespace std; int msbBitValue(int n) {    int k = (int)(log2(n));   &nbs

    20. C++에서 D로 나눌 수 있는 N자리 숫자 찾기

      두 개의 숫자 N과 D가 있다고 가정합니다. D로 나눌 수 있는 N 자리 숫자를 찾아야 합니다. N이 3이고 D가 5이면 숫자는 500이 될 수 있습니다. 이것은 쉽게 풀 수 있습니다. D가 10이고 N이 1이면 불가능합니다. D를 넣고 D에 m개의 자릿수가 있다고 가정하고 N – m개의 0을 연결하여 N개의 자릿수를 D로 나눌 수 있도록 합니다. 예시 #include<iostream> using namespace std; string nDigitDivByD(int n, int d) {    string

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:91/300  20-컴퓨터/Page Goto:1 85 86 87 88 89 90 91 92 93 94 95 96 97