배열이 제공되며 주어진 배열에서 선행 0을 제거한 다음 배열을 인쇄해야 합니다.
Input : arr[] = {0, 0, 0, 1, 2, 3} Output : 1 2 3 Input : arr[] = {0, 0, 0, 1, 0, 2, 3} Output : 1 0 2 3
주어진 문제에서 이전 배열의 선행 0을 포함하지 않는 새 배열을 만들 수 있습니다.
해결책을 찾기 위한 접근 방식
이 접근 방식에서는 배열을 살펴보고 모든 숫자를 삽입하지만 선행 0은 삽입하지 않습니다.
예시
#include <iostream> using namespace std; int main() { int arr[] = {0, 0, 0, 1, 2, 0, 4}; int n = sizeof(arr) / sizeof(int); // size of given array. int last = -1; for(int i = 0; i < n; i++) { // finding the first non zero element if(arr[i] != 0) { last = i; break; } } if(last == -1) cout << "Empty\n"; else { int b[n - last]; // the new array. for(int i = last; i < n; i++) // inserting the elements in the new array b[i-last] = arr[i]; for(int i = 0; i < n-last; i++) // printing the array cout << b[i] << " "; } }
출력
1 2 0 4
위 코드 설명
주어진 프로그램에서 우리는 먼저 배열 arr을 순회하고 0이 아닌 첫 번째 요소의 인덱스를 찾습니다. 이 인덱스는 순회 후 last가 -1인 경우 last now라는 변수에 저장합니다. 따라서 이는 전체 배열이 다음으로 구성된다는 것을 의미합니다. 0이므로 "Empty"를 인쇄합니다.
이제 0이 아닌 첫 번째 요소의 인덱스를 얻었으므로 새 배열의 크기, 즉 (n - 마지막)을 결정할 수 있으며 이제 마지막에서 n 미만까지 for 루프를 실행합니다. 새 배열에 이러한 요소를 삽입하고 새 배열을 인쇄합니다.
결론
이 기사에서는 배열에서 선행 0을 제거하는 문제를 해결합니다. 우리는 또한 이 문제에 대한 C++ 프로그램과 우리가 해결한 완전한 접근 방식을 배웠습니다. C, Java, python 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.