이 튜토리얼에서는 주어진 배열에서 피크 요소를 찾는 프로그램을 작성할 것입니다. 피크 요소는 주변 요소보다 큰 요소입니다. 문제를 해결하는 단계를 살펴보겠습니다. 더미 데이터로 어레이를 초기화합니다. 피크 요소 조건에 대한 첫 번째 요소와 마지막 요소를 확인하십시오. 두 번째 요소에서 배열을 반복합니다. 현재 요소가 이전 요소 및 다음 요소보다 큰지 확인합니다. 위의 조건이 충족되면 반환합니다. 결과 인쇄 예시 코드를 봅시다. #include <bits/stdc++.h> usin
이 튜토리얼에서는 연결 리스트에서 주어진 숫자와 합이 같은 트리플렛을 찾는 프로그램을 작성할 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 연결 목록에 대한 구조체 노드를 만듭니다. 더미 데이터로 연결 리스트를 생성합니다. 연결 목록이 끝날 때까지 반복되는 세 개의 요소에 대해 세 개의 내부 루프를 작성하십시오. 세 가지 요소를 추가합니다. 합을 주어진 숫자와 비교하십시오. 둘 다 같으면 요소를 인쇄하고 루프를 끊습니다. 예시 코드를 봅시다. #include <bits/stdc++
이 튜토리얼에서는 합이 주어진 숫자와 같은 배열에서 트리플렛을 찾는 프로그램을 작성할 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 더미 데이터로 배열을 만듭니다. 배열의 끝까지 반복하는 3개의 요소에 대해 3개의 내부 루프를 작성하십시오. 세 가지 요소를 추가합니다. 합을 주어진 숫자와 비교하십시오. 둘 다 같으면 요소를 인쇄하고 루프를 끊습니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; bool findTriplet
이 튜토리얼에서는 주어진 숫자에 대한 XOR 연산이 최대인 숫자를 찾는 프로그램을 작성할 것입니다. 여기서 비트 수가 8이라고 가정합니다. 다른 비트의 XOR 연산은 1비트를 제공합니다. 그리고 동일한 비트 간의 XOR 연산은 0비트를 제공합니다. 주어진 숫자의 1의 보수를 찾으면 그것이 우리가 찾고 있는 숫자입니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; int findNumberWithMaximumXOR(int X) { re
이 튜토리얼에서는 합이 주어진 숫자와 같은 배열에서 트리플렛을 찾는 프로그램을 작성할 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 더미 데이터로 배열을 만듭니다. 배열의 끝까지 반복하는 3개의 요소에 대해 3개의 내부 루프를 작성하십시오. 세 가지 요소를 추가합니다. 합계를 0과 비교합니다. 둘 다 같으면 요소를 인쇄하고 루프를 끊습니다. 예 코드를 봅시다. #include<bits/stdc++.h> using namespace std; void findTripletsWithSu
이 튜토리얼에서는 자연수의 모든 약수를 찾는 프로그램을 작성할 것입니다. 간단한 문제입니다. 해결 단계를 살펴보겠습니다. 번호를 초기화합니다. 1에서 주어진 숫자까지 반복하는 루프를 작성하십시오. 주어진 숫자가 현재 숫자로 나누어 떨어지는지 확인하십시오. 위의 조건을 만족하면 현재 번호를 출력합니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; void findDivisors(int n) { for (int i
이 튜토리얼에서는 자연수의 모든 약수를 찾는 프로그램을 작성할 것입니다. 간단한 문제입니다. 해결 단계를 살펴보겠습니다. 번호를 초기화합니다. 1에서 주어진 숫자의 제곱근까지 반복하는 루프를 작성하십시오. 주어진 숫자가 현재 숫자로 나누어 떨어지는지 확인하십시오. 위의 조건을 만족하면 현재 숫자와 주어진_숫자/현재_숫자를 출력합니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; void findDivisors(int n) { &nbs
이 튜토리얼에서는 이진 탐색 트리에서 주어진 숫자와 합이 같은 모든 쌍을 찾는 프로그램을 작성할 것입니다. 우리는 쌍을 찾기 위해 두 개의 다른 목록에 나무의 값과 값을 저장할 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 이진 트리에 대한 구조체 노드를 만듭니다. 이진 검색 트리에 새 노드를 삽입하는 함수를 작성하십시오. 이진 검색 트리에서 루트보다 작은 모든 요소는 더 작고 오른쪽이 더 큽니다. 두 개의 빈 목록을 초기화하여 트리의 왼쪽 및 오른쪽 노드를 저장합니다. 왼쪽 또는 오른쪽 노드가
이 튜토리얼에서는 다음 문제를 해결할 것입니다. N 리터 용량의 탱크와 탱크를 분당 S 속도로 채우는 펌프가 있다고 가정합니다. 불행히도 탱크에 구멍이 있습니다. 그리고 물을 채우는 동안 분당 WS의 속도로 물이 낭비됩니다. 가득 찬 탱크에 낭비되는 물의 양을 계산해야 합니다. 분당 채워지는 물의 양은 물을 채우는 물과 폐수 속도의 차이와 같습니다. 따라서 물탱크의 용량을 분당 물 채우기 속도로 나누어 물 탱크를 채우는 총 시간을 구할 수 있습니다. 그리고 낭비되는 물의 속도에 물 탱크를 채우는 시간을 곱하면 쉽게 낭비되는
이 튜토리얼에서는 주어진 배열에서 반복되는 요소를 찾는 프로그램을 작성할 것입니다. 문제를 해결하는 단계를 살펴보겠습니다. 배열을 초기화합니다. 배열에 있는 각 요소의 빈도를 저장하도록 카운터 맵을 초기화합니다. 배열을 반복합니다. 각 요소를 센다. 빈도가 1보다 큰 요소를 인쇄합니다. 예시 코드를 봅시다. #include <bits/stdc++.h> using namespace std; int findRepeatingElement(int arr[], int n) { &n
생일 역설은 확률 부분에서 아주 유명한 문제입니다. 이 문제의 문제 설명은 다음과 같이 명시됩니다. 생일 파티에는 여러 사람이 있고 일부는 같은 생일 충돌을 겪고 있습니다. 대략적인 번호를 찾아야 합니다. 생일이 같다는 이유로 생일 파티에 참석한 사람들의 수 앞서 나갈 확률이 1/2이라는 것을 알고 있는 확률은 동전이 몇 개 있는 것과 같으며 앞면이 10개 나올 확률은 1/100 또는 0.001입니다. 개념을 이해합시다. 두 사람의 생일이 다를 확률은, 364/365는 윤년이 아닌 해의 1-1/365입니다. 따라서 특정
연결 목록은 서로 연결된 여러 노드가 있는 선형 데이터 구조입니다. 각 노드는 데이터 필드와 다음 노드의 주소라는 두 개의 필드로 구성됩니다. 단일 연결 목록이 있고 이 연결 목록에서 첫 번째 노드를 삭제해야 한다고 가정해 보겠습니다. 예를 들어, 입력 1 − 4 → 3 → 2 → 1 출력 − 3 → 2 → 1 → 설명 - 4는 주어진 단일 연결 리스트의 첫 번째 노드입니다. 첫 번째 노드를 삭제하면 연결 리스트는 3→2→1이 됩니다. 입력 2 − 1 → 2 → 3 → 출력 − 2 → 3 → 설명 − 첫 번째 노드 1을
두 개의 문자열 a와 b가 주어졌다고 가정하면, 작업은 문자열 a를 시계 반대 방향 또는 시계 방향으로 정확히 두 자리 회전하여 문자열 b를 얻을 수 있는지 여부를 찾는 것입니다. 예를 들어, 입력-1 - a = google b = legoog 출력 - True 설명 − 문자열 google은 시계 반대 방향으로 두 자리 회전할 수 있으며 결과적으로 문자열 legoog가 생성됩니다. 따라서 True를 반환합니다. 입력-2 - a = tuorialst b = tutorials 출력 - False 설명 - 문자열 tuorial
문자열 str의 길이와 문자열을 지정했다고 가정해 보겠습니다. 작업은 주어진 이진 문자열에서 1로 시작하고 1로 끝나는 부분 문자열의 수를 계산하는 것입니다. 이진 문자열에는 1과 0만 포함됩니다. 예를 들어, 입력-1 - N = 5 str = ‘11101’ 출력 - 6 설명 − 주어진 Binary String에는 1로 시작하고 1로 끝나는 6개의 부분 문자열이 있습니다. 이러한 부분 문자열의 집합은 {11, 111, 1110, 11101, 1101, 101}입니다. 입력-1 - N = 4 str = &
정렬되지 않은 두 개의 배열 arr1[]과 arr2[]가 있다고 가정해 보겠습니다. 작업은 arr1[]의 각 요소가 arr2[]에 있는 요소보다 작거나 같은 arr2[]의 총 요소 수를 계산하는 것입니다. 그러나 두 배열의 요소에도 중복 항목이 포함될 수 있습니다. 예를 들어, 입력-1 - N =6M =7arr1[N] ={1, 2, 5, 0, 6, 3}arr2[M] ={0,0,1,2,1,3,4,6,8} 출력 - 4 5 7 2 8 6 이 문제를 해결하는 데 사용된 접근 방식 arr1[]의 모든 요소를 세고 arr2[]의 요
연결 목록은 노드를 포함하는 선형 데이터 구조이며 각 노드에는 두 개의 필드가 있습니다. 하나는 삽입할 값 또는 데이터이고 다른 필드는 다음 노드의 주소를 저장합니다. 여기서 우리의 임무는 연결 목록의 끝에서 노드를 삭제하는 것입니다. 마지막 노드는 꼬리 노드로 알려져 있습니다. 연결 목록에 노드가 없으면 NULL을 반환합니다. 예를 들어 - 입력 1 − 1 → 2 → 3 → 4 → 5 출력 - 1 → 2 → 3 → 4 → 설명 − 주어진 단일 연결 리스트에서 끝에서 오는 노드는 5입니다. 마지막 노드를 삭제하면 1 → 2
어떤 문자로 구성된 문자열 str이 있다고 가정해 보겠습니다. 작업은 주어진 문자열의 모든 문자가 대문자인지 여부를 확인하고 각각 True 또는 False를 반환하는 것입니다. 예를 들어, 입력-1 - str = “INDIA” 출력 - True 설명 − 입력 문자열의 모든 문자가 대문자이므로 이 경우 true를 반환합니다. 입력-2 - str = “Programmer” 출력 - False 설명 − 입력 문자열의 첫 글자를 제외한 모든 문자가 대문자가 아니므로 이 경우 false를
문자열 s가 주어지면 작업은 주어진 문자열에서 반복되지 않는 첫 번째 고유 문자를 찾고 해당 인덱스를 출력으로 반환하는 것입니다. 주어진 문자열에 그러한 문자가 없으면 출력으로 -1을 반환합니다. 예를 들어, 입력-1 - s = “tutorialspoint” 출력 - 1 설명 - 주어진 문자열 tutorialspoint에서 반복되지 않는 첫 번째 고유 문자는 인덱스 1을 갖는 u입니다. 따라서 1을 출력으로 반환합니다. 입력-2 - s = “aaasttarrs” 출력 - -1 설
연결 목록은 서로 연결된 여러 노드가 있는 선형 데이터 구조입니다. 각 노드는 두 개의 필드 데이터 필드와 다음 노드의 주소로 구성됩니다. 단일 연결 목록에 주어진 단일 연결 목록의 끝에서 k번째 노드를 찾는 작업이 있다고 가정해 보겠습니다. 예를 들어, 입력 - 1→2→3→4→7→8→9 K= 4 출력 - Node from the 4th Position is − 4 설명 − 주어진 단일 연결 리스트에서 끝에서 4번째 노드가 4이므로 출력을 4로 반환합니다. 이 문
최대 길이를 갖는 하위 배열의 길이를 찾는 작업을 갖는 N 정수 배열을 제공했다고 가정합니다. 길이가 최대이거나 합이 0인 부분배열이 없으면 0을 반환합니다. 예를 들어, 입력-1 - N = 8 A[ ] = {15, -5, -1, 5,1, 4 } 출력 - 4 설명 − 제로섬이 있는 가장 큰 부분배열은 { -5, -1, 5, 1}이며 길이는 4입니다. 입력-2 - N = 5 A[ ] = {3, 2 ,4, 8, -1} 출력 - 0 설명 − 합이 0인 하위 배열이 존재하지 않으므로 출력은 0입니다. 이 문제를 해결하기 위한 접