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

    1. C++에서 주어진 합계보다 작거나 같은 합계를 갖는 최대 합계 하위 배열

      이 문제에서는 배열과 합계가 제공됩니다. 우리의 임무는 C++에서 주어진 합보다 작거나 같은 합을 갖는 최대 합 하위 배열을 찾는 프로그램을 만드는 것입니다. 합이 주어진 합보다 작거나 같은 n보다 작거나 같은 길이의 부분배열을 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 - 배열 ={3, 5, 1, 8, 2, 9}, 합계 =25 출력 − 25 설명 − 합계가 25보다 작거나 같은 하위 배열은 {5, 1, 8, 2, 9}입니다. 최대 합계 하위 배열을 찾는 한 가지 간단한 방법은 배열을 반복하고 모든

    2. C++에서 최대 하나의 요소를 제거하는 최대 합계 하위 배열

      이 문제에서는 배열이 제공됩니다. 우리의 임무는 C++에서 최대 하나의 요소를 제거하는 최대 합 하위 배열을 찾는 프로그램을 만드는 것입니다. 기본적으로 제거될 때 배열에 남아 있는 요소의 최대 합계를 제공하는 하나의 요소를 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - 배열 ={5, 1, 9, 2, -1, 7} 출력 − 24 설명 − 배열에서 -1을 제거하고 합계가 가능한 모든 결과의 최대값이 되었습니다. 이 문제에 대한 한 가지 해결책은 배열의 최소 요소를 찾은 다음 배열의 나머지 모든 요소의 합

    3. C++의 순열 II

      고유한 정수 모음이 있다고 가정합니다. 가능한 모든 순열을 찾아야 합니다. 이제 배열에 중복 요소가 저장되어 있으면 비슷하게 보이는 상태를 무시하십시오. 따라서 배열이 [1,1,3]과 같으면 결과는 [[1,1,3], [1,3,1], [3,1,1]] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 재귀적 접근 방식을 사용하여 목록, 색인을 만듭니다. 색인은 처음에 0입니다. 인덱스 =목록의 크기인 경우 res 배열에 목록을 삽입하고 반환 주어진 목록의 길이에 대한 범위 인덱스의 i에 대해 – 1 list[i] =list[ind

    4. C++의 나선 행렬

      행렬이 있고 행렬 요소를 나선형으로 인쇄해야 한다고 가정합니다. 처음에는 첫 번째 행에서 시작하여 전체 내용을 인쇄한 다음 마지막 열을 따라 인쇄한 다음 마지막 행을 따라 인쇄하는 방식으로 요소를 나선형으로 인쇄합니다. 따라서 행렬이 다음과 같은 경우 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 출력은 [1 2 3 4 5 6 12 18 17 16 15 14 13 7 8 9 10 11 15 16] 이 문제를 해결하기 위해 다음 단계를 따릅니다. currRow :=0 및 currC

    5. C++의 파티션 목록

      연결 목록과 값 x가 있다고 가정합니다. 파티션을 만들어야 합니다. x보다 작거나 같은 모든 노드가 x보다 크거나 같은 노드 앞에 오도록 분할합니다. 이 두 파티션 각각에서 노드의 원래 상대 순서를 유지해야 합니다. 따라서 목록이 [1,4,3,2,5,2]이고 x =3이면 출력은 [1,2,2,4,3,5]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 더미 노드 d1과 d2를 만들고 -1로 초기화하고 두 개의 포인터 dp1과 dp2를 생성합니다. 두 포인터는 각각 d1과 d2를 가리키고 있습니다. null이 아닌 동안

    6. C++의 그레이 코드

      그레이 코드는 두 개의 연속 값이 한 비트만 다른 이진수 시스템이라는 것을 알고 있습니다. 코드의 총 비트 수를 나타내는 음이 아닌 정수 n이 있다고 가정합니다. 그레이 코드 시퀀스를 인쇄해야 합니다. 그레이 코드 시퀀스는 0으로 시작해야 합니다. 따라서 입력이 2이면 결과는 [0,1,3,2]가 됩니다. 이는 0의 회색은 00, 1의 회색은 01, 2의 회색은 11이고 3의 회색은 10입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열 하나 만들기 각 숫자에 대한 회색 코드를 찾아 배열로 추가합니다. 회색으로 변환하

    7. C++의 이진 트리 수준 순서 탐색

      바이너리 트리가 있다고 가정합니다. 레벨 순서 순회 방식을 사용하여 이 트리를 순회해야 합니다. 트리가 다음과 같다면 순회 시퀀스는 다음과 같습니다. - [10, 5, 16, 8, 15, 20, 23] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 노드를 저장할 대기열 대기열 정의 루트를 쿼리에 삽입합니다. que가 비어 있지 않은 동안 do item :=대기열의 맨 앞에 있는 항목 항목 값 인쇄 항목의 왼쪽이 null이 아니면 왼쪽 항목을 que에 삽입 항목의 오른쪽이 null이 아니면 항목의 오른쪽을 que에 삽입

    8. C++에서 역 폴란드 표기법 평가

      삼각형이 있다고 가정합니다. 위에서 아래로의 최소 경로 합을 찾아야 합니다. 각 단계에서 아래 행의 인접한 번호로 이동할 수 있습니다. 예를 들어 다음 삼각형이 다음과 같은 경우 [    [2],    [3,4],    [6,5,7],    [4,1,8,3] ] 위에서 아래로의 최소 경로 합은 11(2 + 3 + 5 + 1 =11)입니다. 단계를 살펴보겠습니다. 동적 프로그래밍 접근 방식에서 사용할 하나의 테이블을 만듭니다. n :=삼각형의 크기 i:=n

    9. C++의 회문 분할

      입력 문자열이 하나 있다고 가정하고 해당 문자열의 분할은 회문 분할이며 분할 영역의 모든 하위 문자열이 회문입니다. 이 섹션에서 우리는 주어진 문자열을 회문 분할에 필요한 최소 컷을 찾아야 합니다. 따라서 문자열이 ababbbabbababa와 같은 경우 회문으로 파티션을 최소로 잘라냅니다. 여기서 3컷이 필요합니다. 회문은 다음과 같습니다. 밥밥 | ㄴ | 아바바 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=str의 길이 n x n차의 절단 행렬과 pal 행렬을 정의합니다. i :=0에서 n에 대해 pal[i,

    10. C++의 주유소

      원이 있고 그 원 위에 n개의 주유소가 있다고 가정합니다. 다음과 같은 두 가지 데이터 세트가 있습니다. 모든 주유소의 주유량 한 주유소에서 다른 주유소까지의 거리 자동차가 원을 완성할 수 있는 첫 번째 점을 계산합니다. 1단위의 휘발유로 자동차는 1단위의 거리를 갈 수 있습니다. 4개의 주유소가 있고 주유소의 양과 다음 주유소까지의 거리는 [(4, 6), (6, 5), (7, 3), (4, 5)]와 같으며, 자동차가 순환할 수 있는 첫 번째 지점은 두 번째 주유소입니다. 출력 시작 =1(두 번째 주유소 인덱스) 이 문제는

    11. C++ 프로그램에서 역 폴란드 표기법 평가

      Reverse Polish 표기법이 있고 값을 평가해야 한다고 가정합니다. 역 폴란드어 표기법은 후위 표현이라고도 합니다. 여기서 우리는 접미사 표현식을 풀기 위해 스택 데이터 구조를 사용해야 합니다. 접미사 식에서 일부 피연산자가 발견되면 스택에 푸시합니다. 어떤 연산자가 발견되면 스택에서 두 개의 항목을 팝한 다음 올바른 순서로 작업을 수행합니다. 그 후 결과도 나중에 사용할 수 있도록 스택에 푸시됩니다. 전체 표현식을 완료한 후 최종 결과도 스택 상단에 저장됩니다. 따라서 표현식이 53+62/*35*+이면 답은 39가 됩니다

    12. C++의 유효한 괄호 문자열

      표현식이 있다고 가정합니다. 표현식에는 일부 괄호가 있습니다. 괄호의 균형이 맞는지 확인해야 합니다. 괄호의 순서는 (), {}, []입니다. 두 개의 문자열이 있다고 가정합니다. ()[(){()}]는 유효하지만 {[}]는 유효하지 않습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 소진될 때까지 표현식을 탐색합니다. 현재 문자가 (, { 또는 [와 같은 여는 대괄호인 경우 스택에 푸시합니다. 현재 문자가 ), } 또는 ]와 같은 닫는 대괄호이면 스택에서 팝하고 팝업된 대괄호가 해당 시작 대괄호인지 확인 현재 캐릭터라

    13. C++의 조합 합계 II

      후보 번호 집합(모든 요소가 고유함)과 대상 번호가 있다고 가정합니다. 후보 번호가 주어진 목표와 합해지는 후보에서 모든 고유한 조합을 찾아야 합니다. 후보자 중에서 동일한 번호가 두 번 이상 선택되지 않습니다. 따라서 요소가 [2,3,6,7,8]이고 대상 값이 8이면 가능한 출력은 [[2,6],[8]]입니다. 단계를 살펴보겠습니다 - 재귀적으로 이것을 해결할 것입니다. 재귀 함수의 이름은 solve()입니다. 이것은 인덱스, 배열 a, 정수 b 및 다른 배열 temp를 취합니다. 해결 방법은 아래와 같이 작동합니다 - 빈 배열

    14. C++의 순열 시퀀스

      집합이 [1,2,3,...,n]과 같으며 총 n을 포함한다고 가정합니다! 독특한 순열. 모든 순열을 순서대로 나열하고 레이블을 지정하면 n =3에 대해 다음 시퀀스를 얻습니다. [123,132,213,231,312,321] 따라서 n과 k가 주어진 다음 k 번째 순열 시퀀스를 반환합니다. n은 1에서 9(포함) 사이이고 k는 1에서 n 사이입니다! (포함한). 예를 들어 n =3인 경우. 단계를 살펴보겠습니다 - ans :=빈 문자열, 크기가 n인 후보라는 배열 정의 0 ~ n – 1 범위의 i에 대해 후보[i] :=((i +

    15. C++에서 목록 회전

      연결된 목록이 있다고 가정합니다. 목록을 올바른 k 위치로 회전해야 합니다. k 값은 음수가 아닙니다. 따라서 목록이 [1,23,4,5,NULL]이고 k =2이면 출력은 [4,5,1,2,3,NULL]이 됩니다. 단계를 살펴보겠습니다 - 목록이 비어 있으면 null을 반환합니다. len :=1 tail :=head라는 노드 하나 생성 테일의 다음이 null이 아닌 동안 len 1씩 증가 꼬리:=꼬리의 다음 꼬리 다음:=머리 k :=k 모드 렌 newHead :=null for i :=0 ~ len – k 꼬리:=꼬리의 다음

    16. Python의 고유 경로

      n x m 그리드(n 행 및 m 열)의 왼쪽 상단 모서리에 로봇이 있다고 가정합니다. 로봇은 어느 시점에서든 아래쪽이나 오른쪽으로만 움직일 수 있습니다. 로봇은 그리드의 오른쪽 하단 모서리에 도달하려고 합니다(아래 다이어그램에서 END로 표시됨). 그렇다면 가능한 고유한 경로가 몇 개나 찾아야 할까요? 예를 들어 m =3이고 n =2이면 그리드는 다음과 같습니다. - 로보 종료 출력은 3이므로 시작 위치에서 끝 위치까지 도달하는 총 3가지 방법이 있습니다. 이 경로는 - 오른쪽 → 오른쪽 → 아래쪽

    17. C++의 고유 경로 II

      n x m 그리드(n 행 및 m 열)의 왼쪽 상단 모서리에 로봇이 있다고 가정합니다. 로봇은 어느 시점에서든 아래쪽이나 오른쪽으로만 움직일 수 있습니다. 로봇은 그리드의 오른쪽 하단 모서리에 도달하려고 합니다(아래 다이어그램에서 END로 표시됨). 그리드의 일부 셀이 표시되어 장애물로 간주됩니다. 그렇다면 가능한 고유한 경로가 몇 개나 찾아야 할까요? 예를 들어 그리드가 [[0,0,0],[0,1,0],[0,0,0]]과 같으면 그리드는 아래와 같습니다 - 로보 옵스 종료 출력은 2이므로 시

    18. C++의 최소 경로 합계

      음이 아닌 정수로 채워진 m x n 행렬이 있다고 가정하고 왼쪽 위 모서리에서 오른쪽 아래 모서리까지 경로를 따라 모든 숫자의 합을 최소화하는 경로를 찾습니다. 움직임은 어느 시점에서든 아래 또는 오른쪽에만 있을 수 있습니다. 예를 들어 행렬이 아래와 같다면 1 3 1 1 5 1 4 2 1 출력은 7이고 경로는 1,3,1,1,1이 됩니다. 이렇게 하면 합계가 최소화됩니다. 단계를 살펴보겠습니다 - a :=행 수, b :=열 수 i :=a – 1, j :=b - 1 =0 행렬[a, j] :=행렬[a,

    19. 2차원 좌표점을 오름차순으로 인쇄한 다음 C++에서 해당 빈도를 인쇄합니다.

      이 문제에서는 (x,y)가 2D 평면에서 한 점의 좌표를 제공하도록 2개의 배열 x[], y[]가 제공됩니다. 우리의 임무는 발생 빈도와 함께 모든 포인트를 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: x[]={0, 1, 1, 0, 0} ; y[]={1, 2, 2, 2, 1} Output (0, 1) = 2 (1, 2) = 2 (0, 2) = 1 이 문제를 해결하기 위해서는 각 점의 발생 빈도를 저장해야 합니다. 따라서 지도 데이터 구조를 사용해야 합니다. 맵의 키는 (x[i], y[i]), 매핑된

    20. C++에서 2D 행렬 검색

      하나의 m x n 행렬에서 값을 검색하는 효율적인 알고리즘을 작성했다고 가정합니다. 이 행렬에는 다음과 같은 몇 가지 속성이 있습니다. - 각 행은 왼쪽에서 오른쪽으로 정렬됩니다. 각 행의 첫 번째 숫자는 이전 행의 마지막 정수보다 큽니다. 따라서 행렬이 다음과 같은 경우 - 1 3 5 7 10 11 16 20 23 30 34 50 53 62 78 98 그리고 목표 값이 16이면 출력은 True가 됩니다. 단계를 살펴보겠습니다 - n :=행 수, n이 0이면 false 반환, m :=열 수, m =0이면 fal

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:130/300  20-컴퓨터/Page Goto:1 124 125 126 127 128 129 130 131 132 133 134 135 136