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

    1. C++에서 주어진 N 범위의 모든 요소를 ​​포함하는 범위 찾기

      L과 R을 포함하는 n개의 범위가 있다고 가정합니다. 주어진 n – 1 범위의 다른 모든 범위를 포함하는 범위를 기반으로 0의 인덱스를 확인하거나 찾아야 합니다. 해당 범위가 없으면 -1을 표시합니다. 예를 들어, L =[2, 4, 3, 1]이고 R =[4, 6, 7, 9]이면 출력은 3입니다. 따라서 세 번째 인덱스(1에서 9까지)의 범위가 모든 다른 n – 1 범위의 요소. 모든 L 및 R 점이 구별되므로 가장 작은 L 및 가장 큰 R 점의 범위를 찾으십시오. 둘 다 동일한 범위이면 다른 모든 범위가 그 안에 있음을 나타냅니다

    2. C++에서 주어진 표현식의 가능한 모든 결과 찾기

      괄호가 없는 산술 표현식이 있다고 가정합니다. 우리의 임무는 그 표현의 가능한 모든 결과를 찾는 것입니다. 표현식이 1+2*3-4와 같다고 가정하면 아래와 같이 해석될 수 있습니다 - 1+(2*(3-4)) =1 + (2* -1) =-1 (1+2)*(3-4) =3 * -1 =-3 1+((2*3)-4) =1 + (6 - 4) =3 ((1+2)*3)-4 =(3 * 3) - 4 =5 1+(2*3)-4 =1 + 6 – 4 =3 이 문제를 해결하려면 다음 단계를 따라야 합니다. 처음에 res를 공백으로 설정합니다. 모든 연산

    3. C++에서 주어진 판매 가격과 이익 또는 손실 비율에서 원가 찾기

      판매 가격이 있고 이익 또는 손실 비율이 제공된다고 가정합니다. 우리는 제품의 원가를 찾아야 합니다. 공식은 아래와 같습니다 - $$비용 \:가격 =\frac{판매 가격 * 100}{100 + 백분율 \:이익}$$ $$비용 \:가격 =\frac{판매 가격 *100}{100 + 비율\:손실}$$ 예 #include<iostream> using namespace std; float priceWhenProfit(int sellPrice, int profit) {    return (sellPrice * 1

    4. C++에서 중복이 있는 정렬된 배열에서 같음(또는 중간) 점 찾기

      n개의 요소가 있는 정렬된 배열이 하나 있다고 가정합니다. 배열이 정렬됩니다. 더 작은 요소의 수가 더 큰 요소의 수와 동일한 배열에 요소가 존재하는지 여부를 찾아야 합니다. 배열에 등호점이 여러 번 나타나면 처음 나타나는 인덱스를 반환합니다. 그러한 점이 없으면 -1을 반환합니다. 요소가 A =[1, 1, 2, 3, 3, 3, 3, 3]과 같다고 가정하고 등점은 인덱스 2에 있고 요소는 A[2] =2입니다. 요소는 1이고 하나의 더 큰 요소는 3입니다. 모든 고유한 요소를 저장하기 위해 하나의 보조 배열을 만듭니다. 고유한 요소

    5. C++의 두 이진 트리에서 일치하지 않는 첫 번째 잎 찾기

      두 개의 이진 트리가 있다고 가정합니다. 일치하지 않는 두 나무의 첫 번째 잎을 찾아야 합니다. 일치하지 않는 잎이 없으면 아무 것도 표시하지 않습니다. 이것이 두 개의 나무인 경우 첫 번째 일치하지 않는 잎은 11과 15입니다. 여기서 우리는 스택을 사용하여 동시에 두 트리의 반복적인 선주문 순회를 사용할 것입니다. 우리는 다른 나무에 대해 다른 스택을 사용할 것입니다. 최상위 노드가 리프 노드가 될 때까지 스택에 노드를 푸시합니다. 두 개의 상단을 비교하고 동일하면 추가 확인을 수행하고 그렇지 않으면 두 개의 스택 상단

    6. C++에서 주어진 전환을 통해 끝에 도달할 수 있는지 찾기

      x축에 n개의 점이 있고 점 사이에 허용되는 변환 목록이 있다고 가정합니다. 이러한 거래를 통해서만 출발점에서 끝점에 도달할 수 있는지 알아보십시오. 따라서 점 x1과 x2 사이에 변환이 있는 경우 점 x에서 x1과 x2 사이의 중간 점으로 또는 직접 x2로 이동할 수 있습니다. 따라서 n =5이면 트랜잭션은 0에서 2, 2에서 4, 3에서 5입니다. 그러면 출력은 YES입니다. 0→2→3→5 경로가 있습니다. 쌍의 첫 번째 요소에 따라 목록을 정렬해야 합니다. 그런 다음 목록의 두 번째 쌍에서 시작하여 쌍의 첫 번째 요소가 이전

    7. C++의 이진 배열에서 1의 가장 긴 연속 시퀀스를 얻기 위해 1로 바꿀 0의 인덱스 찾기

      N개의 요소로 구성된 배열이 있다고 가정합니다. 이 요소는 0 또는 1입니다. 1의 가장 긴 연속 시퀀스를 얻기 위해 1로 대체될 0의 위치를 ​​찾습니다. 배열이 arr =[1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1]과 같다고 가정하고 출력 인덱스는 9입니다. 인덱스 9에서 0을 1로 바꾸면 1의 최대 연속 시퀀스 3개의 인덱스를 추적해야 합니다. 현재 인덱스(curr), 이전 제로 인덱스(pz), 이전 제로 인덱스(ppz). 이제 배열 요소가 0일 때 배열을 탐색한 다음 curr과 ppz 사이의 차이를

    8. C++에서 주어진 숫자보다 작거나 같은 가장 큰 특수 소수 찾기

      숫자 n이 있다고 가정합니다. N보다 작거나 같은 가장 큰 특수 소수를 찾아야 합니다. 특수 소수는 숫자이며 숫자를 차례로 배치하여 만들 수 있으므로 결과로 나오는 모든 숫자는 소수입니다. 여기서 우리는 에라토스테네스의 체를 사용할 것입니다. 숫자 n까지 체 배열을 생성합니다. 그런 다음 숫자가 소수인지 확인하여 숫자 N에서 다시 시작합니다. 이것이 소수일 때 이것이 특수 소수인지 확인하십시오. 예시 #include<iostream> using namespace std; bool isSpecialPrime(bool si

    9. C++에서 다른 문자열의 하위 문자열인 한 문자열의 가장 긴 하위 시퀀스의 길이 찾기

      두 개의 문자열 X와 Y가 있고 시퀀스 Y의 하위 문자열인 문자열 X의 가장 긴 하위 시퀀스의 길이를 찾아야 한다고 가정합니다. 따라서 X =ABCD이고 Y =BACDBDCD이면 출력은 3이 됩니다. . ACD는 Y의 부분 문자열인 X의 가장 긴 부분 시퀀스이기 때문입니다. 여기서 우리는 이 문제를 해결하기 위해 동적 프로그래밍 접근 방식을 사용할 것입니다. 따라서 X의 길이가 n이고 Y의 길이가 m이면 (m+1)x(n+1) 차수의 DP 배열을 만듭니다. DP[i, j]의 값은 Y[0…i]의 부분 문자열인 X[0…j]의 부분 시퀀

    10. C++에서 두 문자열 비교

      여기서는 C++에서 두 문자열을 비교하는 방법을 살펴보겠습니다. C++에는 문자열 클래스가 있습니다. 또한 문자열을 비교하기 위해 표준 라이브러리에 compare() 함수가 있습니다. 이 함수는 문자열 문자를 하나씩 검사하고 일부 불일치가 있으면 0이 아닌 값을 반환합니다. 더 나은 아이디어를 얻기 위해 코드를 살펴보겠습니다. 예시 #include<iostream> using namespace std; void compareStrings(string s1, string s2) {    int compar

    11. C++에서 주어진 시작 문자에서 가장 긴 연속 경로의 길이 찾기

      다른 문자의 행렬이 제공됩니다. 한 문자에서 시작하여 현재 문자보다 큰 모든 문자를 순회하여 가장 긴 경로를 찾아야 합니다. 문자는 서로 연속적입니다. E에서 시작합니다. 가장 긴 경로를 찾기 위해 우리는 깊이 우선 탐색 알고리즘을 사용할 것입니다. DFS 동안 일부 하위 문제가 여러 번 발생할 수 있습니다. 그 하위 문제의 반복적인 계산을 피하기 위해 동적 프로그래밍 방식을 사용할 것입니다. 예시 #include<iostream> #define ROW 3 #define COL 3 using namespace st

    12. 경쟁 프로그래밍 초보자를 위한 몇 가지 유용한 C++ 트릭

      여기에서 우리는 다른 영역에서 우리를 도울 수 있는 C++ 프로그래밍 언어의 몇 가지 좋은 트릭을 볼 것입니다. 경쟁적인 프로그래밍 이벤트에 참여하려는 경우 이러한 트릭을 사용하면 코드 작성 시간을 줄이는 데 도움이 됩니다. 이러한 예를 하나씩 살펴보겠습니다. % 연산자를 사용하지 않고 숫자가 홀수인지 짝수인지 확인합니다. 이 트릭은 간단합니다. 숫자와 1로 비트 AND 연산을 수행할 수 있습니다. 결과가 0이 아니면 홀수이고 그렇지 않으면 짝수입니다. 논리가 너무 간단합니다. 모든 홀수는 LSb에서 1을 갖습니다. 따라서 AND

    13. C++ 프로그래밍의 복소수

      이 섹션에서는 C++에서 복소수를 만들고 사용하는 방법을 살펴봅니다. C++에서 복소수 클래스를 만들 수 있습니다. 이 클래스는 복소수의 실수 부분과 허수 부분을 멤버 요소로 보유할 수 있습니다. 이 클래스를 처리하는 데 사용되는 몇 가지 멤버 함수가 있습니다. 이 예제에서는 복소수를 올바른 형식으로 표시하는 함수인 하나의 복합 유형 클래스를 만들고 있습니다. 두 개의 복소수 등을 더하고 빼는 두 가지 추가 방법 예시 #include<iostream> using namespace std; class complex{ &n

    14. C++에서 O(1) 시간과 O(1) 추가 공간에서 스택에서 최대값 찾기

      스택에 최대 요소를 저장할 수 있는 스택을 만들고 싶다고 가정합니다. 그리고 우리는 O(1) 시간에 그것을 얻을 수 있습니다. 제약 조건은 O(1) 추가 공간을 사용해야 한다는 것입니다. 최대 값을 저장할 사용자 정의 스택을 하나 만들 수 있습니다. pop 또는 peek과 같은 작업이 수행되면 최대 값이 반환됩니다. peek 작업의 경우 스택 상단과 최대 요소의 최대값을 반환하고 팝 작업의 경우 상단 요소가 더 클 때 인쇄하고 max를 2*max – top_element로 업데이트합니다. 그렇지 않으면 top_element를 반환

    15. C++ 표준 템플릿 라이브러리(STL)에서 정렬

      여기에서 C++ STL의 sort() 함수를 사용하여 배열을 정렬하는 방법을 볼 것입니다. 따라서 배열이 A =[52, 14, 85, 63, 99, 54, 21]과 같으면 출력은 [14 21 52 54 63 85 99]. 정렬을 위해 헤더 파일 에 있는 sort() 함수를 사용할 것입니다. 코드는 아래와 같습니다 - 예시 #include <iostream> #include <algorithm> using namespace std; int main() {    int arr[] = {52, 14

    16. C++에서 절대 차이가 1보다 작거나 같은 요소의 최대 수 찾기

      n개의 요소로 구성된 배열이 있다고 가정합니다. 선택한 두 요소의 절대 차이가 1보다 작거나 같도록 배열에서 선택할 최대 요소 수를 찾아야 합니다. 따라서 배열이 [2, 2, 3, 4, 5], 그러면 요소는 3이 되므로 최대 개수가 있는 시퀀스는 2, 2, 3입니다. 0과 1의 절대 차이는 숫자가 x 및 x + 1 유형이 될 수 있음을 의미합니다. 따라서 아이디어는 배열 요소의 빈도를 저장하는 것입니다. 따라서 연속된 두 요소의 최대 합을 찾으면 솔루션이 됩니다. 예 #include <iostream> #include

    17. C++ 프로그래밍에서 우리 자신의 할당 연산자를 언제 작성해야 합니까?

      여기서 우리는 C++에서 자신의 할당 연산자를 생성해야 할 때를 볼 것입니다. 클래스에 포인터가 없으면 할당 연산자와 복사 생성자를 만들 필요가 없습니다. C++ 컴파일러는 각 클래스에 대해 복사 생성자와 할당 연산자를 생성합니다. 연산자가 충분하지 않으면 자체 할당 연산자를 만들어야 합니다. 예시 #include<iostream> using namespace std; class MyClass { //no user defined assignment operator or copy constructor is present &

    18. C++에서 주어진 숫자의 자릿수를 사용하여 구성할 수 있는 최대 숫자 찾기

      n개의 숫자가 있다고 가정합니다. 그 숫자의 모든 자릿수를 사용하여 얻을 수 있는 최대 숫자를 찾아야 합니다. 따라서 숫자가 339625라면 최대 숫자는 965332가 될 수 있습니다. 문제에서 숫자를 증가하지 않는 순서로 쉽게 정렬한 다음 인쇄할 수 있음을 알 수 있습니다. 그러나 보다 효율적인 방법을 사용하여 이 문제를 해결할 수 있습니다. 크기가 10인 배열 하나를 만들어 각 숫자의 빈도를 저장한 다음 그에 따라 9에서 0까지의 숫자를 인쇄할 수 있습니다. 예시 #include <iostream> #include

    19. C++가 부분적으로 객체 지향 언어인 이유는 무엇입니까?

      우리가 알고 있듯이 객체 지향 프로그래밍 언어의 몇 가지 기본 기능은 상속, 캡슐화, 다형성입니다. 이러한 기능을 완벽하게 지원하는 모든 언어를 객체 지향 프로그래밍 언어라고 합니다. C++와 같은 일부 언어는 이 세 가지를 지원하지만 완전히 지원하지는 않으므로 부분적으로는 객체 지향 언어입니다. C++가 완전한 객체 지향 언어로 알려져 있지 않은 이유를 살펴보겠습니다. C++에서 실행을 시작하려면 main() 함수가 필요하지만 C++에서는 클래스 내부에 주요 함수가 없습니다. 따라서 C++에서 클래스를 사용하지 않고 코드를 작성

    20. C++에서 계승을 나누는 숫자의 최대 거듭제곱 찾기

      두 개의 숫자 n과 사실이 있다고 가정합니다. 사실을 나누는 n의 가장 큰 거듭제곱을 찾아야 합니다! (사실의 요인). 따라서 사실 =5이고 n =2이면 출력은 3이 됩니다. 따라서 5입니다! =120이고 2^3 =8로 나눌 수 있습니다. 여기서는 Legendre 공식을 사용합니다. 이것은 사실을 나누는 소수의 가장 큰 거듭 제곱을 찾습니다!. 우리는 n의 모든 소인수를 찾은 다음 사실을 나누는 가장 큰 거듭제곱을 찾습니다. 따라서 사실이 146이고 n =15이면 n의 소인수는 5와 3입니다. 따라서 3의 경우 [146/3]

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:99/300  20-컴퓨터/Page Goto:1 93 94 95 96 97 98 99 100 101 102 103 104 105