[プログラマー]偽装
問題の概要
すくい取る
普通の地図で実現し、無秩序な地図に変えます.最初は
タイムアウト
最初に「着る部分を選ぶ」というプロセスが加わった.
だからPartsu C 1 Partsu C 2...各パズル数Cパズル数について、着用可能な指数は乗算(選択されたパズル数の種類数の積)である.
(帽子数+1)*(化粧数+1)*(Tシャツ数+1)...(靴数+1)-1
使えます.
各積ブロックにおいて、+1は、着用しないことを選択できることを示す.
最後に1を外すのは何も着ていない場合を除きます.
実際,これはハッシュ問題よりも組合せ問題のように見える.
コード#コード#
#include <string>
#include <vector>
#include<unordered_map>
#include<iostream>
#include<set>
#include<algorithm>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 0;
unordered_map<string,int> m;
for(int i = 0;i<clothes.size();i++){
unordered_map<string,int>::iterator it = m.find(clothes[i][1]);
if(it == m.end()){
m.insert({clothes[i][1],1});
}
else{
it->second++;
}
}
int n_parts = m.size();
cout<<n_parts<<endl;//nparts c1 2 3..nparts
vector<int> sz_arr;
answer = 1;
for(unordered_map<string, int>::iterator it = m.begin();it!=m.end();it++){
sz_arr.push_back(it->second);
answer*=it->second+1;
cout<<it->second+1<<" ";
}
cout<<"done print"<<endl;
answer-=1;
return answer;
}
Reference
この問題について([プログラマー]偽装), 我々は、より多くの情報をここで見つけました https://velog.io/@coding3392/프로그래머스-위장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol