이 문제에서는 문자열과 정수 M이 제공됩니다. 우리의 임무는 사전순(알파벳 순서)으로 길이가 M인 모든 고유한 원형 문자열을 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: str= “ssssn” M=3 Output: nss sns ssn sss 설명 - 길이가 3인 가능한 모든 원형 문자열은 다음과 같습니다. sss sss ssn sns nss. 사전순의 고유한 요소는 ssssn sns nss.입니다. 이 문제를 해결하기 위해 문자열의 요소를 반복하고 길이가 M인 가능한 모든
이 문제에서는 문자열이 제공됩니다. 우리의 임무는 문자열에 나타나는 순서대로 문자열의 모든 고유한 문자를 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input: tutorials Point Output: uralsPn 이 문제를 해결하는 방법은 여러 가지가 있지만 가장 효과적인 방법에 대해 설명합니다. 간단한 것은 루프의 중첩을 포함합니다. 이를 위해 크기가 256인 두 개의 배열(8비트 문자가 저장됨)을 사용합니다. 먼저 카운터 배열의 모든 값을 0으로 초기화하고 인덱스 배열의 모든 값을 n(문자열 길
이 문제에서 총점 n이 주어집니다. 총점이 n인 농구 점수 1, 2, 3의 모든 조합을 인쇄하십시오. 문제를 이해하기 위해 예를 살펴보겠습니다. Input: 4 Output: 1 1 1 1 1 1 2 1 2 1 1 3 2 1 1 2 2 3 1 이 문제를 해결하기 위해 재귀를 사용할 것입니다. 그리고 나머지 값 n-s에 대한 수정 및 리소스, 여기서 s는 점수입니다. 조합의 합이 n이면 조합을 인쇄하십시오. 예시 코드는 우리 코드의 구현을 보여줍니다 - #define MAX_POINT 3 #define ARR_SIZE 100 #
이 문제에서는 숫자 n이 주어집니다. 우리의 임무는 n의 모든 인수 조합을 출력하는 것입니다. 주제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input: 24 Output: 2 2 2 3 2 4 3 8 3 4 6 2 12 이를 위해 우리는 숫자의 요소 조합을 찾는 재귀 함수를 사용할 것입니다. 그리고 우리는 모든 조합을 배열 배열에 저장할 것입니다. 예시 이 코드는 우리 솔루션의 구현을 보여줍니다. #include<bits/stdc++.h> using namespace std; vector<vector&
이 문제에서는 정수 n이 주어집니다. 우리의 임무는 n개의 균형이 잡힌 괄호의 가능한 모든 쌍을 인쇄하는 것입니다. 대괄호 모든 해당 여는 기호에 대해 닫는 기호가 있는 괄호 쌍입니다. 또한 쌍은 적절하게 중첩되어야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input: n = 2 Output: {}{} {{}} 이 문제를 해결하려면 대괄호 쌍을 추적해야 합니다. 괄호의 초기 개수는 0입니다. 그런 다음 총 괄호 개수가 n보다 작아질 때까지 재귀적으로 함수를 수행합니다. 카운트 대괄호, 카운트에 따라 대괄호를 재귀적
이 문제에서는 숫자가 주어집니다. 그리고 반복되는 3자리 숫자를 모두 출력해야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: 98769876598765 Output: 987: 3 times 876: 3 times 765: 2 times 이 문제를 해결하기 위해 string에 저장된 큰 수를 사용합니다. 숫자의 자릿수는 문자로 계산됩니다. 이제 처음 세 개의 숫자를 확인한 다음 세 번째 인덱스부터 끝까지 새 숫자를 가져옵니다. 그런 다음 다음
이 문제에서는 문자열과 정수 n이 제공됩니다. 우리의 임무는 주어진 문자열을 파동 패턴으로 인쇄하는 것입니다. n줄 중 문제를 이해하기 위해 예를 들어보겠습니다. Input: Tutorial n = 3 Output: T r U o i s t &nbs
이 문제에서는 숫자 n이 주어집니다. 우리의 임무는 0 또는 음수로 감소한 다음 다시 숫자로 증가하는 패턴을 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input: n = 12 Output: 12 7 2 -3 2 7 12 이 문제를 해결하기 위해 재귀를 사용하고 업데이트할 때마다 함수를 호출합니다. 업데이트 트랙은 함수에 숫자를 5씩 늘리거나 줄이도록 지시하는 플래그 변수를 사용하여 유지됩니다. 예시 아래 코드는 우리 솔루션의 구현을 제공합니다. #include <iostream> using n
이 문제에서는 숫자 n이 주어집니다. 우리의 임무는 모든 숫자가 구별되도록 n보다 작은 가장 큰 숫자를 출력하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: n = 2332 Output: 2319 이 문제를 해결하기 위해 숫자의 카운트를 n에서 0으로 반대로 합니다. 그리고 현재 카운트 값이 조건을 만족하면 출력하고 루프를 종료하는 고유한 자릿수를 가진 숫자를 확인합니다. 그렇지 않으면 루프를 계속하십시오. 루프가 실행될 최대 횟수는 항상 n보다 작습니다. 예시 솔루션 구현을 위한 프로그램, #includ
이 문제에서 두 개의 숫자 K와 D가 주어졌습니다. 우리의 임무는 D와 같은 디지털 루트를 갖는 k 자리 숫자를 인쇄하는 것입니다. 디지털 루트 한 자리 숫자에 도달할 때까지 숫자의 자릿수를 재귀적으로 더한 결과인 한 자리 값입니다. 디지털 합계라고도 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: D = 5 , K = 6 Output: 60000 이 문제를 해결하기 위해 숫자 D 다음에 0의 시도를 사용할 것입니다. 우리의 숫자는 {D000..(k-1 times)}이 됩니다. . 이것은 덜 복잡하면서도 우리
이 문제에서는 행렬이 제공됩니다. 우리의 임무는 매트릭스를 역파형으로 인쇄하는 것입니다. 한 줄로. 이 예를 통해 문제가 명확해집니다. Input: 1 4 6 11 2 5 8 54 7 9 3 43 1 7 4 34 Output: 11 54 43 34 4 3 8 6 4 5 9 7 1 7 2 1 이 문제를 해결하려면 행렬의 역 파형을 인쇄해야 하며 이를 위해 마지막 열의 요소를 아래쪽 방향으로 인쇄한 다음 마지막에서 두 번째 열의 요소를 위쪽으
이 문제에서는 2D 배열이 제공됩니다. 우리의 임무는 배열의 모든 요소를 첫 번째 행에서 시작하여 왼쪽에서 오른쪽으로, 다음 행에서는 오른쪽에서 왼쪽으로, 그리고 다시 왼쪽에서 오른쪽으로 계속해서 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: array = { {2, 5} {4, 9} } Output: 2 5 9 4 이 문제를 해결하기 위해 행의 지정된 방향(LtoR 및 RtoL)으로 요소를 인쇄합니다. 그리고 인쇄 방향을 나타내는 플래그 요소는 반복
이 문제에서 우리는 2차원 행렬과 점 P(c,r)입니다. 우리의 임무는 주어진 점 P에서 시작하는 나선 형태(시계 반대 방향)로 행렬의 모든 요소를 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. Input: matrix[][] = {{3, 5, 7} } Output: 이 문제를 해결하기 위해 요소 인쇄에 4개의 루프를 사용합니다. 각 루프는 고유한 방향의 요소를 인쇄합니다. 우리는 포인트 p에서 인쇄를 시작하고 나선형 형태로 인쇄를 계속할 것입니다. 예시 우리 솔루션의 구현을 보여주는 프로그램 #include
이 문제에서는 2차원 행렬이 주어집니다. 우리의 임무는 행렬의 지그재그 형태를 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: 12 99 43 10 82 50 15 75 5 Output: 12 99 43 50 82 10 15 75 5 이 문제를 해결하기 위해 배열의 요소를 양방향(LtoR 및 RtoL)으로 인쇄합니다. 그리고 플래그 변수를 사용하여 방향을 변경합니다. 예 #include <iostream> using nam
이 문제에서는 2차원 행렬이 주어집니다. 우리의 임무는 행렬의 모든 요소를 역나선 형태로 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력:12 23 54 67 76 90 01 51 43 18 49 5 31 91 75 9출력:18 49 1 90 76 43 31 91 75 9 5 51 67 124 23 행렬의 중심에서 시작하여 요소를 역방향으로 인쇄하는 데 4개의 루프를 사용하여 역 나선 방향으로 요소를 인쇄합니다. 예시 솔루션 구현을 보여주는 프로그램 #include #define R 3#define C
이 문제에서는 2차원 행렬이 주어집니다. 그리고 우리의 임무는 행렬의 요소를 시계 반대 방향 나선으로 인쇄하는 것입니다. 시계 반대 방향 나선 형태 − 왼쪽 상단에서 시작하여 시계 반대 방향으로 첫 번째 오른쪽 하단에서 왼쪽 상단으로 가는 나선형 탐색입니다. 반시계 방향 순회는 1 5 9 13 14 15 16 12 8 4 3 2 6 10 11 7이 됩니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: 2 4 6 1 7 9 5 0 3 Output
이 문제에서는 문자열이 제공됩니다. 우리의 임무는 현재 문자열에 가장 가깝고 인접한 중복 문자를 포함하지 않는 문자열을 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. Input: string = “good” Output: goad 이 예에서는 인덱스 1과 2의 요소가 동일하므로 인덱스 2의 요소를 변경합니다. 이 문제를 해결하기 위해 문자열을 탐색하고 인접한 두 요소가 동일한지 확인합니다. 그렇다면 두 번째 요소를 변경합니다(i와 i+1 요소가 동일하면 i+1 요소 변경). 이 문제를 풀기
이 문제에서는 정렬 알고리즘과 숫자 n이 제공됩니다. 우리의 작업은 알고리즘으로 정렬할 수 없는 n개의 요소 배열을 인쇄하는 것입니다. 즉, 알고리즘이 실패합니다. 알고리즘 loop i from 1 to n-1 loop j from i to n-1 if a[j]>a[i+1] swap(a[i], a[j+1]) 두 개의 중첩 루프를 사용하는 이 정렬 알고리즘을 살펴보겠습니다. 외부 루프는 1에서 n-1까지, 내부 루프는 i에서 n-1로 시작하여
각 노드에 정수 키가 있는 이진 트리가 있다고 가정합니다. 주어진 값으로 합산되는 경로를 찾아야 합니다. 경로는 루트에서 리프로 시작해야 합니다. 합이 같은 경로를 찾아야 합니다. 트리가 [5,4,8,11,null,13,4,7,2,null,null,5,1]이고 합계가 22이면 -가 됩니다. 경로는 [[5,4,11,2],[5,8,4,5]]입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dfs 함수를 사용하여 이 문제를 해결하십시오. dfs가 약간 수정되면 다음과 같이 작동합니다. 이 함수는 루트, 합계 및 하나
두 개의 이진 트리가 있고 그 중 하나를 다른 하나를 덮을 때 두 트리의 일부 노드는 겹치고 다른 노드는 겹치는 경우를 가정해 보겠습니다. 우리는 그것들을 새로운 이진 트리로 병합해야 합니다. 병합 규칙은 두 노드가 겹치면 노드 값을 합산하여 병합된 노드의 새 값으로 만드는 것과 같습니다. 그렇지 않으면 비어 있지 않은 노드가 새 트리의 노드로 사용됩니다. 따라서 나무가 - 그러면 출력은 -가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 메서드는 mergeTrees()입니다. 이것은 두 개의 트리