https://school.programmers.co.kr/learn/courses/30/lessons/131127
map으로 해결할 수 있는 문제이다.
map에 현재 discount 배열에 있는 상품을 10개 골라 넣는다.
그 후 want배열에 있는 문자열을 map에 넣어 number와 모두 일치하면 answer수를 늘린다.
#include <string>
#include <vector>
#include <unordered_map>
#include <iostream>
using namespace std;
int solution(vector<string> want, vector<int> number, vector<string> discount) {
int answer = 0;
for(int i = 0;i<discount.size();i++){
unordered_map<string, int> want_map;
if(i+10 > discount.size())
break;
for(int j = i;j<i+10;j++){
want_map[discount[j]]++;
}
bool isClear = false;
for(int j = 0;j<want.size();j++){
if(want_map[want[j]] != number[j]){
isClear = false;
break;
}
isClear = true;
}
if(isClear){
answer++;
}
}
return answer;
}
'Programmers Review' 카테고리의 다른 글
[Lv 2] 방문 길이 (0) | 2024.08.10 |
---|---|
[Lv 2] [3차] n진수 게임 (0) | 2024.08.10 |
[Lv 2] 스킬트리 (0) | 2024.08.05 |
[Lv 2] 튜플 (0) | 2024.08.02 |
[Lv 2] 전화번호 목록 (0) | 2024.08.02 |