성우리뷰
2021 카카오)순위 검색
두원공대88학번뚜뚜
2021. 5. 5. 23:34
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> db[3][2][2][2];
vector<int> split(string str) {
vector<int> v;
char c;
string tmp;
int n;
for(char c : str) {
if(c == ' ') {
if(tmp == "cpp" || tmp == "backend" || tmp == "junior" ||
tmp == "chicken") {
n=0;
}
else if(tmp == "python") {
n=2;
}
else {
n=1;
}
tmp = "";
v.push_back(n);
}
else {
tmp.push_back(c);
}
}
v.push_back(stoi(tmp));
return v;
}
int check(string str) {
int ret=0;
vector<int> v;
char c; string tmp;
for(char c:str) {
if(c == ' ') {
if(tmp == "-") {
v.push_back(-1);
}
else if(tmp == "cpp" || tmp == "backend" || tmp == "junior" ||
tmp == "chicken") {
v.push_back(0);
}
else if(tmp == "python") {
v.push_back(2);
}
else if(tmp == "and") {
tmp = "";
continue;
}
else {
v.push_back(1);
}
tmp = "";
}
else {
tmp.push_back(c);
}
}
v.push_back(stoi(tmp));
//int i = v[0]==-1? 0:v[0]; int j = v[1]==-1? 0:v[1];
//int k = v[2]==-1? 0:v[2]; int l = v[3]==-1? 0:v[3];
int n1 = v[0]==-1? 2:v[0]; int n2 = v[1]==-1? 1:v[1];
int n3 = v[2]==-1? 1:v[2]; int n4 = v[3]==-1? 1:v[3];
// printf("1. %d %d %d %d & %d %d %d %d\n", n1, n2, n3, n4, v[0], v[1], v[2], v[3]);
for(int i = v[0]==-1? 0:v[0]; i<=n1; i++) {
for(int j = v[1]==-1? 0:v[1]; j<=n2; j++) {
for(int k = v[2]==-1? 0:v[2]; k<=n3; k++) {
for(int l = v[3]==-1? 0:v[3]; l<=n4; l++) {
for(int m=0; m<db[i][j][k][l].size(); m++) {
if(db[i][j][k][l][m] >= v[4]) {
ret++;
// printf("%d %d %d %d %d & %d %d %d %d %d\n", i, j, k, l,
// m, n1, n2, n3, n4, db[i][j][k][l].size());
// printf("%d %d\n", db[i][j][k][l][m], v[4]);
}
// printf("2. %d %d %d %d %d & %d %d %d %d %d\n", i, j, k, l,
// m, n1, n2, n3, n4, db[i][j][k][l].size());
}
// ret = n1;
}
}
}
}
return ret;
}
vector<int> solution(vector<string> info, vector<string> query) {
vector<int> answer;
string str;
for(string& str : info) {
vector<int> v = split(str);
db[v[0]][v[1]][v[2]][v[3]].push_back(v[4]);
}
int n;
for(string& str :query) {
answer.push_back(check(str));
}
return answer;
}