C++:: 프로그래머스 < 할인 행사 >

jahlee·2023년 4월 26일
0

프로그래머스_Lv.2

목록 보기
40/106
post-thumbnail

간단히 map에 원하는 상품과 그 개수를 등록해두고 map을 복제해서 10일 마다 해당 상품이 존재하면 개수를 지워준다음 원하는 품목을 다 구매하였는지 체크해주었다.

#include <string>
#include <vector>
#include <map>
using namespace std;

int solution(vector<string> want, vector<int> number, vector<string> discount)
{
    int answer = 0;
    map <string,int> items;
    for(int i=0;i<want.size();i++) items[want[i]] = number[i];// 원하는 상품과 그 개수 등록
    for(int i=0;i<discount.size()-9;i++)
    {//10일 기간을 전체다 체크해준다.
        bool able = true;// 회원가입해도 되는지
        map <string,int> tmp(items);// 원하는 상품과 그 개수 복제본
        for(int j=i;j<i+10;j++) tmp[discount[j]]--;//10일동안 상품--
        for(auto c : tmp)
        {
            if (c.second)
            {//구매못한 상품이 있다면
                able = false;
                break;
            }
        }
        if (able) answer++;// 다 구매할 수 있다면
    }
    return answer;
}

0개의 댓글