[プログラマー/C++]偽装
12693 ワード
https://programmers.co.kr/learn/courses/30/lessons/42578
それぞれの服装は個数を利用して組み合わせなければならない.
各衣類の着用方法は
したがって,各方法を乗算すると,組合せの個数が得られる.
ここでは少なくとも1枚の服を着なければならないので、何も着なければ、1枚外せばいいです.
現在の配列は
その後地図を巡り、各
そしてautoを使ってもっと簡単に表現します
2 Dベクトルを使ったことがないので混同しました.
リファレンスを挿入し、 を削除します.クエリー は、 が存在するかどうか値 を変更巡回訪問
問題を解く
それぞれの服装は個数を利用して組み合わせなければならない.
a,b,c
の種類の服装が3,2,1
の順にある場合各衣類の着用方法は
(3+1)
、(2+1)
、(1+1)
である.プラス1の理由は着なくてもいいから!したがって,各方法を乗算すると,組合せの個数が得られる.
ここでは少なくとも1枚の服を着なければならないので、何も着なければ、1枚外せばいいです.
現在の配列は
[[이름, 종류], [이름,종류], [이름,종류]]
であるため、それぞれのタイプがkey
の地図のvalue
値を1つずつ加算して算出する.その後地図を巡り、各
(value+1)
を順番に乗じて、その後1つ外して終わりました!コード#コード#
#include <string>
#include <vector>
#include <map>
#include <iostream>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string,int> m; //의상 종류, 개수
//의상 종류마다 개수 저장.
for(int i=0;i<clothes.size();i++){
if(m.count(clothes[i][1])==0) m[clothes[i][1]]=1; //key값이 없을 경우
else m[clothes[i][1]]+=1;
}
// (의상a 개수 +1)*(의상b 개수 +1)*... -1 (모두 입지 않은 경우)
for(auto it=m.begin();it!=m.end();it++){
answer*=it->second+1;
}
return answer-1;
}
新しい認識の事物
1)
//의상 종류마다 개수 저장
for(int i=0;i<clothes.size();i++){
if(m.count(clothes[i][1])==0) m[clothes[i][1]]=1; //key값이 없을 경우
else m[clothes[i][1]]+=1;
}
これでkey値がない場合は別と思いますが、直接m[clothes[i][1]]+=1
でもいいようです.そしてautoを使ってもっと簡単に表現します
for(auto item : clothes) //clothes의 각 행!
m[item[1]]++; //item[1] 은 해당 행의 1열을 의미함, 즉 옷 종류
このハーモニーでもいい!2)2 Dベクトル
2 Dベクトルを使ったことがないので混同しました.
3) map
リファレンス
map[key]=value;
map.insert(make_pair(key,value));
map.erase(key); : 주어진 key와 그 key의 value쌍을 삭제한다.
map[key]; → value값 출력
map.count(key);
指定したキーの要素数を返します.ただしkeyは一意の値であるためcount関数は0と1しか返されません.map[key]+=a;
map[key]=value;
map[key]はvalueであり、通常は変数を変更するときのように処理するだけでよい.for(iter = m.begin(); iter != m.end() ; iter++){
cout << "[" << **iter->first** << ", " << **iter->second** << "]" << " ";
}
key: iter->fisrt
value: iter->second
Reference
この問題について([プログラマー/C++]偽装), 我々は、より多くの情報をここで見つけました https://velog.io/@inryu/프로그래머스-C-위장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol