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와 B와 CostA 및 CostB와 같은 두 개의 비용 값이 있다고 가정합니다. A와 B를 동일하게 만들기 위한 최소 비용을 찾아야 합니다. 문자열에서 문자를 삭제할 수 있고 문자열 A에서 삭제하는 비용은 CostA이고 문자열 B에서 삭제하는 데 드는 비용은 CostB입니다. 문자열에서 모든 문자를 제거하는 비용은 동일합니다. 문자열 A =wxyz, B =wyzx, CostA는 10, CostB는 20이라고 가정합니다. 따라서 출력은 30이 됩니다. 두 문자열에서 x를 삭제하면 A와 B는 동일합니다. 따라서 비용은

    2. C++에서 두 목록의 공통 요소에 대한 최소 색인 합계

      두 사람이 다른 도시를 선택하기를 원하고 다른 목록에 도시를 나열했다고 가정하고 공통 선택을 찾기 위해 우리는 도와야 합니다. 따라서 우리는 두 도시가 모두 표시된 도시를 찾아야 합니다. 이 작업은 집합 교차 속성과 매우 유사합니다. 두 개의 목록을 집합으로 가져온 다음 집합 교차를 수행하여 공통 요소를 가져옵니다. 예 #include <iostream> #include <vector> #include <algorithm> using namespace std; vector<string>

    3. C++에서 중간점을 사용하여 사각형의 모서리 찾기

      직사각형 ABCD가 있지만 중간점 P와 Q의 좌표와 직사각형 L의 길이만 있다고 가정합니다. 우리의 임무는 P와 Q의 좌표와 변 L의 길이를 사용하여 A, B, C 및 D의 좌표를 찾는 것입니다. 예를 들어, P가 (1, 0)이고 Q가 (1, 2)인 경우 , 그리고 L이 2이면 A, B, C, D는 각각 (0, 0), (0, 2), (2, 2)가 됩니다. (2, 0). 세 가지 경우가 발생할 수 있습니다. 사각형은 수평이므로 AD와 BC는 X축에 평행합니다. 사각형이 수직이므로 AD와 BC가 Y축에 평행합니다. 직사각형은

    4. C++에서 단일 값 하위 트리의 개수 찾기

      이진 트리가 있다고 가정합니다. 우리의 임무는 주어진 트리에서 단일 값 하위 트리를 계산하는 것입니다. 단일 값 하위 트리는 해당 트리의 모든 노드가 동일한 값을 포함하는 하위 트리입니다. 트리가 아래와 같다고 가정 - 4개의 단일 값 하위 트리가 있습니다. 다음과 같습니다 - 상향식 방식을 사용하여 이를 해결할 수 있습니다. 방문하는 모든 하위 트리에 대해 그 아래에 있는 하위 트리가 단일 값이면 true를 반환하고 카운터를 1만큼 증가시킵니다. 여기서 count는 재귀 호출에 대한 참조 매개변수입니다. 그리고 반환된

    5. C++의 배열에서 최대 GCD가 있는 쌍 찾기

      양의 정수 배열이 있다고 가정합니다. 우리의 임무는 배열에서 GCD 값이 최대인 정수 쌍을 찾는 것입니다. A ={1, 2, 3, 4, 5}라고 하면 출력은 2입니다. 쌍 (2, 4)에는 GCD 2가 있고 다른 GCD 값은 2보다 작습니다. 이 문제를 해결하기 위해 각 요소의 제수 수를 저장하는 count 배열을 유지합니다. 제수를 세는 과정은 O(sqrt(arr[i])) 시간이 걸립니다. 전체 순회 후에 마지막 인덱스에서 첫 번째 인덱스까지 count 배열을 순회할 수 있습니다. 그런 다음 요소가 1보다 큰 값을 찾으면 이는 2

    6. C++에서 주어진 인덱스를 사용하여 N 피보나치 수의 GCD 찾기

      여기서 우리는 주어진 인덱스로 n개의 피보나치 항의 GCD를 찾아야 합니다. 따라서 처음에는 최대 색인을 가져와서 피보나치 항을 생성해야 합니다. 일부 피보나치 항은 다음과 같습니다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …. 색인이 시작됩니다. 0부터. 따라서 0번째에 있는 요소 인덱스는 0입니다. 인덱스 {2, 3, 4, 5}에서 피보나치 항의 gcd를 찾아야 하는 경우 항은 {1, 2, 3, 4}이므로 이 숫자의 GCD는 1입니다. 우리는 이 작업을 수행하기 위해 한 가지 흥미로운 접근 방식을 사용할 것

    7. C++의 회전 정렬 배열에서 회전 수 찾기

      회전 정렬된 배열인 배열이 있다고 가정합니다. 배열을 정렬하는 데 필요한 회전 수를 찾아야 합니다. (오른쪽에서 왼쪽으로 회전하는 것을 고려할 것입니다.) 배열이 {15, 17, 1, 2, 6, 11}과 같다고 가정하고 정렬하려면 배열을 두 번 회전해야 합니다. 최종 주문은 {1, 2, 6, 11, 15, 17}입니다. 여기서 출력은 2입니다. 논리는 간단합니다. 알아차리면 최소 요소의 인덱스 값과 회전 횟수가 동일함을 알 수 있습니다. 따라서 최소 요소를 얻으면 해당 인덱스가 결과가 됩니다. 예시 #include <ios

    8. C++의 범위에서 비전이적 코프라임 삼중항 찾기

      하한과 상한이 있고 쌍(x, y)이 동소(GCD는 1)이고 쌍(y, z)이 동이 되도록 비전이적 삼중항(x, y, z)을 찾아야 한다고 가정합니다. , 그러나 쌍 (x, z)은 공소 쌍이 아닙니다. 예를 들어, 하한이 2이고 상한이 10이면 요소는 {2, 3, 4, 5, 6, 7, 8, 9, 10}입니다. 여기서 가능한 삼중항은 (4, 7, 8 ), 여기 (4, 7) 및 (7, 8)은 동소이지만 (4, 8)은 동소 쌍이 아닙니다. 우리는 이것을 해결하기 위해 순진한 접근 방식을 따를 것입니다. 범위 하한 및 상한에서 가능한 모든

    9. C++에서 GCD를 사용하지 않고 둘 이상의(또는 배열) 숫자의 LCM 찾기

      배열 A가 있고 GCD 연산을 사용하지 않고 모든 요소의 LCM을 찾아야 합니다. 배열이 {4, 6, 12, 24, 30}과 같으면 LCM은 120이 됩니다. LCM은 두 숫자에 대해 쉽게 계산할 수 있습니다. LCM을 얻으려면 이 알고리즘을 따라야 합니다. getLCM(a, b) - begin    if a > b, then m := a, otherwise m := b       while true do          if m is

    10. C++의 BST에서 바닥과 천장

      여기에서 BST에서 Floor 및 Ceiling 값을 찾는 방법을 살펴보겠습니다. 예를 들어, BST에 여유 노드가 배열된 메모리 관리 시스템을 만들고 싶다면. 입력 요청에 가장 적합한 것을 찾으십시오. 가장 작은 데이터가 키 값보다 큰 트리 아래로 이동한다고 가정하면 세 가지 경우가 있습니다. 루트가 핵심입니다. 그런 다음 루트 값은 상한 값입니다. 루트 데이터 <키이면 상한 값이 왼쪽 하위 트리에 있지 않고 오른쪽 하위 트리로 진행하여 문제 영역을 줄입니다. 키이면 상한 값이 오른쪽 하위 트리에 있을 수 있고 왼쪽 하위 트리

    11. C++에서 다른 모든 요소와 동소인 배열 요소를 확인하십시오.

      2 <=A[i] <=106인 양의 정수 배열 A[]가 있다고 가정합니다. 가능한 모든 i 값에 대해. 작업은 배열의 다른 모든 요소와 동소 쌍을 형성하는 요소가 적어도 배열에 존재하는지 확인하는 것입니다. 배열 {2, 8, 4, 10, 6, 7}을 고려하십시오. 여기서 7은 배열의 다른 모든 요소와 동소입니다. 이 문제를 해결하기 위한 효율적인 접근 방식은 주어진 배열에서 정수의 모든 소인수를 생성해야 한다는 것입니다. 요소가 다른 요소와 공통된 소인수를 포함하지 않으면 항상 다른 요소와 공소수 쌍을 형성합니다. 예시 #inclu

    12. C++의 표현식에서 균형 잡힌 괄호 확인

      표현식이 있다고 가정합니다. 표현식에는 일부 괄호가 있습니다. 괄호의 균형이 맞는지 확인해야 합니다. 괄호의 순서는 (), {}, []입니다. 두 개의 문자열이 있다고 가정합니다. ()[(){()}]는 유효하지만 {[}]는 유효하지 않습니다. 작업은 간단합니다. 우리는 이것을 하기 위해 스택을 사용할 것입니다. 솔루션을 얻으려면 다음 단계를 따라야 합니다 − 소진될 때까지 표현식을 탐색합니다. 현재 문자가 (, { 또는 [와 같은 여는 대괄호인 경우 스택에 푸시합니다. 현재 문자가 ), } 또는 ]와 같은 닫는 대괄호이면 스택에

    13. C++의 이진 트리에서 자식 합계 속성 확인

      이진 트리가 있다고 가정합니다. 이진 트리는 다음 속성을 충족할 때 유효합니다. 각 노드는 왼쪽과 오른쪽 자식 값의 합과 같은 데이터 값을 포함해야 합니다. 어느 쪽에도 어린이가 없으면 0으로 처리됩니다. 주어진 속성을 만족하는 트리가 아래와 같이 있다고 가정합니다. 이를 확인할 수 있는 트릭은 없습니다. 노드와 해당 자식 모두가 속성을 만족하면 true를 반환하고 그렇지 않으면 false를 반환합니다. 예 #include <iostream> using namespace std; class node { &nbs

    14. C++에서 트리를 구축하지 않고 동일한 BST 확인

      BST의 요소를 나타내는 두 개의 배열이 있습니다. 해당 배열의 요소를 왼쪽에서 오른쪽으로 가져와 BST를 구성한 다음 두 배열에서 모두 가져와서 동일한 BST를 만듭니다. 둘 다 같은 모양인지 아닌지 확인해야 합니다. 그러나 제약은 우리가 BST를 만들 수 없다는 것입니다. 두 개의 배열이 {2, 4, 1, 3} 및 {2, 1, 4, 3}이라고 가정하면 이 두 시퀀스가 ​​모두 동일한 BST를 형성할 수 있습니다. 접근 방식은 간단합니다. 우리가 알다시피 왼쪽 하위 트리의 요소는 루트보다 작고 오른쪽 하위 트리의 요소는 루트

    15. C++의 정렬된 배열에서 과반수 요소 확인

      7/2를 볼 수 있습니다. 배열에서 x의 발생을 셀 수 있으며, 숫자가 n/2보다 크면 대답은 참이고 그렇지 않으면 거짓입니다. 예시 #include <iostream> #include <stack> using namespace std; bool isMajorityElement(int arr[], int n, int x){    int freq = 0;    for(int i = 0; i<n; i++){       if(arr[i] == x

    16. C++에서 모든 문자 교체 쿼리 후 회문 확인

      세트 Q에 문자열과 일부 쿼리가 있다고 가정합니다. 각 쿼리에는 정수 i와 j 쌍이 포함되어 있습니다. 그리고 다른 캐릭터 c. 인덱스 i와 j의 문자를 새 문자 c로 바꿔야 합니다. 그리고 문자열이 회문인지 아닌지 알려주세요. 문자열이 AXCDCMP와 같다고 가정하고 (1, 5, B)와 같은 쿼리를 사용하면 문자열은 ABCDCBP가 되고 (0, 6, A)와 같은 다른 쿼리는 ABCDCBA가 됩니다. , 회문입니다. 인덱스 i, j를 사용하여 하나의 쿼리를 만든 다음 문자열에서 인덱스 i, j에 있는 문자를 c로 바꿔야 합니다.

    17. C++의 2D 행렬에서 가능한 경로 확인

      2D 배열이 있다고 가정합니다. 왼쪽 위 모서리에서 오른쪽 아래 모서리로 가는 경로를 얻을 수 있는지 찾아야 합니다. 행렬은 0과 1로 채워집니다. 0은 열린 영역을 나타내고 1은 막힘을 나타냅니다. 왼쪽 상단 모서리는 항상 1입니다. 행렬이 아래와 같다고 가정 - 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 한 경로는 녹색으로 표시되고 다른 경로도 있습니다. 따라서 프로그램은 경로가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다. 접근 가능한 모든 노

    18. 주어진 행렬이 마방진인지 C++에서 확인하십시오.

      여기서 우리는 행렬이 마방진인지 아닌지를 알 수 있습니다. 마방진은 각 행, 각 열 및 각 대각선의 합이 동일한 정사각형 행렬입니다. 행렬이 아래와 같다고 가정 - 6 1 8 7 5 3 2 9 4 이것은 마방진입니다. 각 행, 열, 대각선의 합이 15인 것을 알 수 있습니다. 행렬이 마방진인지 여부를 확인하려면 주대각선 합과 이차 대각합을 찾아야 합니다. 같으면 마방진이고 그렇지 않으면 마방진입니다. 예시 #include <iostream> #define N 3 using namespace std; bool

    19. 크기가 n인 주어진 배열이 C++에서 n 레벨의 BST를 나타낼 수 있는지 확인하십시오.

      배열 A가 있고 배열이 n 레벨의 BST를 나타낼 수 있는지 여부를 확인해야 합니다. 레벨이 이므로 다음과 같은 방식으로 트리를 구성할 수 있습니다. 숫자가 k이고 k보다 큰 값은 오른쪽으로 이동하고 k보다 작은 값은 왼쪽으로 이동한다고 가정합니다. 두 개의 목록이 있다고 가정합니다. {50, 20, 9, 25, 10} 및 {50, 30, 20, 25, 10} 첫 번째는 유효하지 않지만 두 번째는 유효합니다. 이를 확인하기 위해 BST를 만들고 높이를 확인하거나 배열 기반 접근 방식을 사용할 수 있습니다. 배열 기반 접근 방

    20. 숫자가 주어진 기본에 있는지 C++에 없는지 확인하십시오.

      숫자 문자열이 있다고 가정하고 숫자가 주어진 기본 B인지 찾아야합니까? 문자열이 101110이고 b =2이면 프로그램은 true를 반환합니다. 문자열이 A8F이고 밑이 16이면 true입니다. 접근 방식은 매우 간단합니다. 모든 문자가 지정된 기본 기호 범위에 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다. 예시 #include <iostream> using namespace std; bool inGivenBase(string s, int base) {    if (base >

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:81/300  20-컴퓨터/Page Goto:1 75 76 77 78 79 80 81 82 83 84 85 86 87