> 백엔드 개발 > C++ > 본문

C++ 프로그램: 한 상자를 다른 상자 안에 넣은 후 표시되는 상자 수 찾기

王林
풀어 주다: 2023-09-11 23:37:02
앞으로
1267명이 탐색했습니다.

C++ 프로그램: 한 상자를 다른 상자 안에 넣은 후 표시되는 상자 수 찾기

문제를 해결하기 위해 상자 크기가 포함된 배열이 제공됩니다. 이제 조건이 생겼습니다. 큰 상자의 크기가 작은 상자의 두 배 이상이면 작은 상자를 큰 상자에 넣을 수 있습니다. 이제 우리는 예를 들어 보이는 상자의 수를 결정해야 합니다.

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
로그인 후 복사

해결책을 찾는 방법

이 문제에서 우리의 접근 방식은 배열을 정렬하는 것입니다. 이제 요소를 대기열에 푸시합니다. 진행하면서 현재 요소가 대기열 앞에 있는 요소 크기의 두 배보다 크거나 같은지 확인합니다. true이면 이제 이전 요소를 팝합니다. 마지막으로 현재 요소를 대기열에 푸시합니다. 우리의 대답은 마지막 대기열의 크기입니다.

Example

#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;
}
로그인 후 복사

Output

3
로그인 후 복사

Conclusion

이 튜토리얼에서는 한 상자를 다른 상자 안에 넣은 후 보이는 상자 수를 찾는 문제를 해결했습니다. 우리는 또한 이 문제에 대한 C++ 프로그램과 이를 해결하기 위한 완전한 방법(일반)을 배웠습니다. C, Java, Python 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 튜토리얼이 도움이 되었기를 바랍니다.

위 내용은 C++ 프로그램: 한 상자를 다른 상자 안에 넣은 후 표시되는 상자 수 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!