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

    1. C++의 행렬에서 안전한 셀 찾기

      mat[][] 행렬이 있다고 가정합니다. 캐릭터 Z와 P가 있습니다. Z는 좀비이고 P는 식물입니다. 그리고 또 다른 문자 *는 맨땅입니다. 좀비는 식물이 좀비에 인접해 있을 때 식물을 공격할 수 있습니다. 우리는 좀비로부터 안전한 식물의 수를 찾아야 합니다. 행렬이 아래와 같다고 가정 - 따라서 안전한 식물은 단 두 개뿐입니다. 행렬 요소를 요소별로 탐색한 다음 현재 요소가 식물이면 식물이 좀비에 둘러싸여 있는지 확인하고 그렇지 않은 경우 개수를 늘립니다. 예시 #include<iostream> using nam

    2. C++에서 주어진 이익 비율 및 비용에서 판매 가격 찾기

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

    3. C++에서 K % p =0 및 q % K =0이 되도록 가장 작은 수 K 찾기

      두 개의 정수 P와 Q가 있다고 가정합니다. K mod P =0 및 Q mod K =0이 되도록 가장 작은 수 K를 찾아야 합니다. 그렇지 않으면 -1을 인쇄합니다. 따라서 P와 Q가 2와 8이면 K는 2가 됩니다. 2 mod 2 =0, 8 mode 2 =0입니다. K가 가능하려면 Q를 P로 나눌 수 있어야 합니다. 따라서 P mod Q =0이면 P를 인쇄하고 그렇지 않으면 -1을 인쇄합니다. 예시 #include<iostream> using namespace std; int getMinK(int p, int q) {

    4. C++에서 배열의 모든 요소에 대해 가장 가까운 작은 값 찾기

      여기서 배열의 모든 요소에 대해 가장 가까운 값을 찾는 방법을 볼 것입니다. 요소 x에 그보다 큰 다음 요소가 있고 배열에도 존재하는 경우 해당 요소의 더 큰 값이 됩니다. 요소가 없으면 -1을 반환합니다. 배열 요소가 [10, 5, 11, 6, 20, 12]이고 더 큰 요소가 [11, 6, 12, 10, -1, 20]이라고 가정합니다. 20은 배열에서 더 큰 값이 아니므로 -1을 인쇄합니다. 이를 해결하기 위해 C++ STL의 설정을 사용합니다. 이 집합은 이진 트리 접근 방식을 사용하여 구현됩니다. 이진 트리에서 항상 순차 계

    5. C++에서 n에 가장 가깝고 m으로 나눌 수 있는 수 찾기

      두 개의 정수 n과 m이 있다고 가정합니다. n에 가장 가까운 수를 찾아 m으로 나누어야 합니다. 그러한 숫자가 두 개 이상인 경우 절대값이 최대인 숫자를 표시하십시오. n이 m으로 완전히 나누어지면 n을 반환합니다. 따라서 n =13, m =4이면 출력은 12입니다. 이 문제를 해결하기 위해 다음 단계를 수행할 수 있습니다. - q:=n/m 및 n1:=m*q 0이면 n2 :=m * (q + 1), 그렇지 않으면 n2 :=m * (q - 1) 만약 |n – n1| <|n – n2|, n1 반환, 그렇지 않으면 n2 반환 예시

    6. C++의 세 연결 목록에서 공통 요소 찾기

      연결된 목록이 세 개 있다고 가정합니다. 우리는 이 세 연결 목록에 있는 모든 공통 요소를 찾아야 합니다. 이 목록이 [10, 12, 15, 20, 25], [10, 12, 13, 15] 및 [10, 12, 15, 24, 25, 26]이라고 가정하고 이 세 목록의 공통 요소는 10입니다. , 12 및 15. 우리는 이 문제를 해결하기 위해 해싱 기술을 사용할 것입니다. 이 문제를 해결하려면 다음 단계를 따라야 합니다. 빈 해시 테이블을 생성하고 첫 번째 테이블의 각 요소를 살펴보고 요소를 삽입하고 빈도를 1로 표시 두

    7. C++에서 최소 3개의 연속 1이 있는 길이가 N인 이진 문자열의 수를 찾으십시오.

      정수 N이 있다고 가정하고 길이가 N이고 연속 1이 3개 이상 있는 가능한 모든 고유한 이진 문자열의 수를 찾아야 합니다. 따라서 n =4이면 숫자는 0111, 1110, 1111이 되므로 출력은 3이 됩니다. 이를 해결하기 위해 동적 프로그래밍 접근 방식을 사용할 수 있습니다. 따라서 DP(i, x)는 i + 1에서 i + x 위치에 x 연속 1이 있는 길이 i의 문자열 수를 나타냅니다. 그러면 반복 관계는 다음과 같습니다. - DP(i, x) =DP(i – 1, 0) + DP(i – 1, x + 1). 반복은 문자열 중 하

    8. C++의 세 가지 정렬된 배열에서 공통 요소 찾기

      몇 가지 요소가 포함된 세 개의 배열이 있다고 가정합니다. 이 세 가지 배열에 있는 모든 공통 요소를 찾아야 합니다. 이러한 요소가 [10, 12, 15, 20, 25], [10, 12, 13, 15] 및 [10, 12, 15, 24, 25, 26]이라고 가정하면 이 세 배열의 공통 요소는 10입니다. , 12 및 15. 배열 A1에서 순회하는 현재 요소가 x, A2가 y, A3이 z라고 가정합니다. 우리는 그들을 위해 다음과 같은 경우를 가질 수 있습니다 - x, y, z가 같으면 아무거나 인쇄하고 각 배열 요소를 1씩 증

    9. C++에서 0과 1만 포함하는 1부터 n까지의 정수 개수 찾기

      숫자 n이 있다고 가정합니다. 우리의 임무는 0과 1의 숫자만을 포함하는 1에서 n까지의 정수의 수를 찾는 것입니다. 따라서 n =15이면 출력은 다음과 같습니다. 숫자가 1, 10, 11이므로 이를 해결하기 위해 재귀 함수를 사용하여 0과 1을 사용하는 정수를 생성합니다. 다음 코드는 이를 더 잘 이해하는 데 도움이 됩니다. 예시 #include<iostream> using namespace std; int numberOfValues(int p, int n) {    if (p > n) &nbs

    10. C++에서 숫자의 이진 표현에서 길이>=n의 연속적인 1 찾기

      두 개의 정수 x와 n이 있다고 가정하고 우리의 임무는 n 값보다 크거나 같은 1의 첫 번째 연속 스트림(32비트 바이너리)을 검색하는 것입니다. 길이를 늘리고 위치를 반환합니다. 그러한 문자열이 없으면 -1을 반환합니다. 예를 들어, x =35이고 n =2이면 결과는 31이 됩니다. 32비트 정수에서 35의 이진 표현은 -와 같습니다. 0000000000000000000000000100011. 따라서 두 개의 연속 1이 인덱스 31에 있으므로 답은 31입니다. 이 문제를 해결하려면 선행 0의 수를 찾아야 하고 그 수에서 연속

    11. C++의 두 이중 연결 목록에서 공통 노드 수 찾기

      이중 연결 목록이 두 개 있다고 가정합니다. 이중 연결 리스트에서 공통 노드의 총 수를 찾아야 합니다. 따라서 두 개의 목록이 [15, 16, 10, 9, 7, 17] 및 [15, 16, 40, 6, 9]와 같으면 세 개의 공통 노드가 있습니다. 두 개의 중첩 루프를 사용하여 목록의 끝까지 두 목록을 탐색하고 목록의 모든 노드에 대해 두 번째 목록의 노드와 일치하는지 확인합니다. 일치하는 항목이 있으면 카운터를 늘리고 마지막으로 카운트를 반환합니다. 예 #include<iostream> using namespace st

    12. C++에서 0에서 숫자 줄로 X에 도달하기 위한 점프 수 찾기

      정수 X가 있다고 가정합니다. 0에서 X에 도달하는 데 필요한 최소 점프 수를 찾아야 합니다. 첫 번째 점프의 길이는 한 단위가 될 수 있으며 각 연속 점프는 이전 점프보다 정확히 한 단위 더 길어집니다. 각 점프에서 왼쪽 또는 오른쪽으로 갈 수 있습니다. 따라서 X =8이면 출력은 4입니다. 0 → -1 → 1 → 4 → 8이 가능한 단계입니다. 주의 깊게 관찰하면 다음과 같이 말할 수 있습니다. 항상 올바른 방향으로 점프했다면 n번 점프한 후 p =1 + 2 + 3 + … + n 지점에 있게 됩니다. 왼쪽으로도 점프할 수 있

    13. C++에서 이진 트리의 두 노드 사이의 거리 찾기

      노드가 거의 없는 이진 트리가 있다고 가정해 보겠습니다. 우리는 두 노드 u와 v 사이의 거리를 찾아야 합니다. 트리가 아래와 같다고 가정합니다 - 이제 (4, 6) =4 사이의 거리, 경로 길이는 4, (5, 8) =5 사이의 길이 등 이 문제를 해결하기 위해 LCA(Lowest Common Ancestor)를 찾은 다음 LCA에서 두 노드까지의 거리를 계산합니다. 예시 #include<iostream> using namespace std; class Node {    public:  

    14. C++에서 a =c 및 b =d가 되도록 숫자를 네 부분으로 나누는 방법의 수를 찾으십시오.

      숫자 n이 있다고 가정합니다. a =c, b =d가 되도록 숫자를 부분(a, b, c, d)으로 나누는 방법의 수를 찾아야 합니다. 따라서 숫자가 20이면 출력은 4가 됩니다. [1, 1, 9, 9], [2, 2, 8, 8], [3, 3, 7, 7] 및 [4, 4, 6 , 6] 따라서 N이 홀수이면 답은 0입니다. 숫자가 4로 나누어 떨어지면 답은 n/4 – 1이 아니면 n/4입니다. 예시 #include <iostream> using namespace std; int countPossiblity(int num) { &

    15. C++의 이진 트리에서 루트에서 주어진 노드까지의 거리 찾기

      노드가 거의 없는 이진 트리가 있다고 가정해 보겠습니다. 루트와 다른 노드 u 사이의 거리를 찾아야 합니다. 트리가 아래와 같다고 가정: 이제 (root, 6) =2 사이의 거리, 경로 길이는 2, (root, 8) =3 사이의 거리 등 이 문제를 해결하기 위해 재귀적 접근 방식을 사용하여 왼쪽 및 오른쪽 하위 트리에서 노드를 검색하고 각 레벨의 길이도 업데이트합니다. 예 #include<iostream> using namespace std; class Node {    public:  

    16. C++에서 처음 N개의 소수의 곱 찾기

      숫자 n이 있다고 가정합니다. 1에서 n 사이의 소수의 곱을 찾아야 합니다. 따라서 n =7이면 출력은 2 * 3 * 5 * 7 =210과 같이 210이 됩니다. 우리는 모든 소수를 찾기 위해 에라토스테네스의 체 방법을 사용할 것입니다. 그런 다음 이들의 곱을 계산합니다. 예시 #include<iostream> using namespace std; long PrimeProds(int n) {    bool prime[n + 1];    for(int i = 0; i<=n; i++

    17. O(n)의 배열과 C++에서 O(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> #

    18. C++에서 짝수 자리와 홀수 자리에 있는 숫자의 자릿수 합 찾기

      정수 N이 있다고 가정하고 홀수 자리 숫자와 짝수 자리 숫자의 합을 찾아야 합니다. 따라서 숫자가 153654와 같다면 odd_sum =9, even_sum =15입니다. 이 문제를 해결하기 위해 마지막 자릿수에서 모든 자릿수를 추출할 수 있습니다. 원래 숫자의 자릿수가 홀수이면 마지막 자릿수가 홀수 위치에 있어야 하고 그렇지 않으면 짝수 위치에 있어야 합니다. 숫자를 처리한 후 홀수에서 짝수로 또는 그 반대로 상태를 반전할 수 있습니다. 예시 #include<iostream> using namespace std; bo

    19. C++에서 빈도가 n/2보다 크거나 같은 정렬된 배열에서 요소를 찾습니다.

      크기가 n인 배열이 있다고 가정해 보겠습니다. 이 배열은 정렬됩니다. 빈도가 n/2보다 크거나 같은 요소가 하나 있습니다. 여기서 n은 배열의 요소 수입니다. 따라서 배열이 [3, 4, 5, 5, 5]와 같으면 출력은 5가 됩니다. 이러한 유형의 배열을 자세히 관찰하면 빈도가 n/2 이상인 숫자가 인덱스 n/2에도 존재한다는 것을 쉽게 알 수 있습니다. 따라서 요소는 n/2 위치에서 찾을 수 있습니다. 예시 Source Code: #include<iostream> using namespace std; int higher

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