이 튜토리얼에서는 자연수에서 일부 정수를 제거한 후 가장 작은 요소를 찾는 프로그램을 작성할 것입니다.
요소의 배열과 k 값을 제공했습니다. 주어진 배열에 존재하는 자연수에서 모든 요소를 제거합니다. 그런 다음 나머지 자연수 중에서 k번째로 작은 수를 찾습니다.
문제를 해결하는 단계를 살펴보겠습니다.
- 배열 및 k를 초기화합니다.
- 배열을 초기화하고 주어진 배열에 있는 요소를 제외한 모든 요소를 0으로 초기화합니다.
- 주어진 배열의 크기까지 반복하는 루프를 작성하십시오.
- 현재 요소가 위의 배열에 없으면 k 값을 줄입니다.
- k가 0이 되면 현재 값을 반환합니다.
- 0을 반환합니다.
예시
코드를 봅시다.
#include <bits/stdc++.h> #define MAX 1000000 using namespace std; int smallestNumber(int arr[], int n, int k) { int flag[MAX]; memset(flag, 0, sizeof flag); for (int i = 0; i < n; i++) { flag[arr[i]] = 1; } for (int i = 1; i < MAX; i++) { if (flag[i] != 1) { k--; } if (!k) { return i; } } return 0; } int main() { int k = 2; int arr[] = { 3, 5 }; cout << smallestNumber(arr, 2, k) << endl; return 0; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
2
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.