๋ฌธ์
์ฝ๋
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <map>
#include <set>
using namespace std;
struct Info{
set<string> member;
};
vector<int> solution(vector<string> id_list, vector<string> report, int k) {
vector<int> answer;
map<string,set<string>> db;
map<string,int>reported_cnt;
map<string,int>memory;
for(string s: report){
vector<string> report_split;
istringstream ss(s);
string stringBuffer;
while(getline(ss, stringBuffer,' ')){ //๊ณต๋ฐฑ ์คํ๋ฆฟ
report_split.push_back(stringBuffer);
}
string reporter = report_split.front();
for(int i=1; i<report_split.size(); i++){ // report ๊ธฐ๋ก
db[reporter].insert(report_split[i]);
}
}
for(auto it=db.begin(); it!=db.end(); it++){ //์ ๊ณ ๋ช๋ฒ ๋ฐ์๋์ง ๊ธฐ๋ก
for(auto it2 = it->second.begin(); it2!=it->second.end(); it2++){
reported_cnt[*it2]++;
}
}
for(auto it=db.begin(); it!=db.end(); it++){ //์ ๊ณ ๋ช๋ฒ ๋ฐ์๋์ง ๊ธฐ๋ก
int cnt = 0;
for(auto it2 = it->second.begin(); it2!=it->second.end(); it2++){
if(reported_cnt[*it2]>=k) cnt++;
}
memory[it->first] = cnt; // ํด๋น ์ ์ ๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ช๊ฐ ๋ฐ๋์ง ๊ธฐ๋ก
}
for(int i=0; i<id_list.size(); i++){
answer.push_back(memory[id_list[i]]); // ๋ฉค๋ฒ ์์๋๋ก ๋ฉ์ธ์ง ๊ฐฏ์ ์ ์ฅ
}
return answer;
}
ํ์ด(45๋ถ)
์ ์ถ๋ ฅ๋ถํฐ ๊ณต๋ฐฑ์ split ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ C++๋ก ํ๊ธฐ์ ์ฐธ ์ผ๋ฐํ๋ ๋ฌธ์ ์์ต๋๋ค.(๋ฌผ๋ก ์ ์ค๋ ฅ์ด ์๋ ๊ฒ๋ ์๊ฒ ์ง๋ง)
- c++์์์ string split ๊ธฐ๋ฅ์ ๋ฐฐ์ ๊ณ ,
- c++์์ set์ ์์๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด์๋ ํฌ์ธํฐ๋ก ์ ๊ทผํด์ผ ํ๋ ๊ฒ๋ ์๊ฒ ๋์๋ ๋ฌธ์ ์์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ํ๋ก๊ทธ๋๋จธ์ค(Programmers)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ๋ง๋ค๊ธฐ(Level 1) (0) | 2022.04.11 |
---|---|
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์(Level 1) (0) | 2022.04.10 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํคํจ๋ ๋๋ฅด๊ธฐ(Level 1) (0) | 2022.04.10 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ ํ ๋๋ฆฌ ํ์ ํ๊ธฐ(Level 2) (0) | 2022.04.08 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - [1์ฐจ] ์บ์(Level 2) (0) | 2022.04.07 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ(Level 2) (0) | 2022.03.23 |
๋๊ธ