반응형
// you can use includes, for example:
// #include <algorithm>
#include <map>
// you can write to stdout for debugging purposes, e.g.
// cout << "this is a debug message" << endl;
vector<int> solution(string &S, vector<int> &P, vector<int> &Q) {
// write your code in C++14 (g++ 6.2.0)
int arr[4][100001]={0,};
map<char,int> m;
m['A'] = 0;
m['C'] = 1;
m['T'] = 3;
m['G'] = 2;
int a=0,c=0,g=0,t=0;
vector<int> v;
for(int i=0; i<S.size(); i++){
if(S[i]=='A'){
a++;
}
if(S[i]=='C'){
c++;
}
if(S[i]=='G'){
g++;
}
if(S[i]=='T'){
t++;
}
arr[0][i+1]=a;
arr[1][i+1]=c;
arr[2][i+1]=g;
arr[3][i+1]=t;
}
for(int i=0; i<P.size(); i++){
for(int j=0; j<4; j++){
if(P[i]==Q[i]){
v.push_back(m[S[P[i]]]+1);
break;
}
if(arr[j][P[i]]<arr[j][Q[i]+1]){
v.push_back(j+1);
break;
}
}
}
return v;
}
반응형
'코테' 카테고리의 다른 글
[Codility] Distinct C++ (0) | 2021.12.29 |
---|---|
[Codility] MinAvgTwoSlice C++ (0) | 2021.12.29 |
[Codility] CountDiv C++ (0) | 2021.12.29 |
[Codility] PassingCars C++ (0) | 2021.12.29 |
[Codility] PassingCars C++ (0) | 2021.12.29 |