이 튜토리얼에서는 자연수에서 일부 정수를 제거한 후 가장 작은 요소를 찾는 프로그램을 작성할 것입니다.
요소의 배열과 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
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.