C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

1つを別の中に入れた後に見えるボックスの数を見つけるためのC++プログラム


ボックスのサイズを含む配列が与えられるという問題を解決するため。これで、大きい方のボックスが小さい方のボックスの少なくとも2倍のサイズであれば、小さい方のボックスを大きい方のボックスの中に収めることができるという条件が与えられます。ここで、たとえば、表示されているボックスの数を決定する必要があります。

Input : arr[] = { 1, 3, 4, 5 }
Output : 3
Put a box of size 1 in the box of size 3.

Input : arr[] = { 4, 2, 1, 8 }
Output : 1

解決策を見つけるためのアプローチ

この問題では、私たちのアプローチは、前進するにつれて配列をソートすることです。ここで要素をキューにプッシュします。進行するにつれて、現在の要素がキューのフロント要素の2倍以上であるかどうかを確認します。それが本当なら、ここでフロント要素をポップします。最後に、現在の要素をキューにプッシュします。私たちの答えは、最後のキューのサイズになります。

#include <bits/stdc++.h>
using namespace std;
int main(){
    int arr[] = { 1, 2, 3, 4, 5, 6 }; // given array containing the size of our boxes
    int n = sizeof(arr) / sizeof(arr[0]); // size of our array
    queue<int> q;
    sort(arr, arr + n); // sorting our array
    q.push(arr[0]); // pushing the smallest element in the front
    for (int i = 1; i < n; i++) { // traversing the array
        int curr = q.front(); // current element
        if (arr[i] >= 2 * curr) // if the size of the current box is greater than twice
                               // of the box in front so we pop the front
            q.pop();

        q.push(arr[i]); // pushing the current element in the queue
    }
    cout << q.size() << "\n"; // our answer
    return 0;
}

出力

3

結論

このチュートリアルでは、問題を解決して、1つのボックスを別のボックスの中に入れた後に表示されるボックスの数を見つけます。また、この問題のC ++プログラムと、この問題を解決するための完全なアプローチ(通常)についても学びました。同じプログラムを、C、java、python、その他の言語などの他の言語で作成できます。このチュートリアルがお役に立てば幸いです。


  1. 削除操作後に配列の縮小サイズを見つけるC++プログラム

    n個の要素を持つ配列Aがあるとします。 n個の正の整数を持つパスワードがあると考えてください。配列に次の操作を適用します。操作は、互いに同じではない2つの隣接する要素を削除し、それらの合計をその場所に配置することです。したがって、この操作により、配列のサイズが1つ小さくなります。これらの操作を実行した後、配列の可能な限り短い長さを見つける必要があります。 したがって、入力がA =[2、1、3、1]の場合、出力は1になります。これは、(1、3)を選択すると、配列が[2、4、1]になるため、 (2、4)を使用して配列[6、1]を作成し、最後の2つを選択して[7]を取得します。 ステップ これを

  2. グリッド内の照らされたセルの数を見つけるためのC++プログラム

    次元h*wのグリッドが与えられていると仮定します。グリッド内のセルには、球根または障害物のいずれかを含めることができます。電球のセルはそれ自体とその右、左、上、下のセルを照らし、障害物のセルが光を遮らない限り、光はセルを通して輝くことができます。障害物セルは照明できず、電球セルからの光が他のセルに到達するのを防ぎます。したがって、配列「bulb」内のグリッド内の電球セルの位置と配列「obstacles」内の障害物セルの位置を考えると、照らされているグリッド内のセルの総数を見つける必要があります。 したがって、入力がh =4、w =4、bulb ={{1、1}、{2、2}、{3、3}}、障害物