๋ฌธ์
์ฝ๋
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int N, M; cin>>N>>M;
vector<string>v;
string dna;
int hamming_distance_cnt = 0;
for(int i=0; i<N; i++){
string inp; cin>>inp;
v.push_back(inp);
}
for(int i=0; i<M; i++){
map<char,int> cnt;
int max_cnt = -1;
char max_char = 'Z';
for(int k=0; k<N; k++){
cnt[v[k][i]]++;
if(max_cnt<cnt[v[k][i]]){
max_cnt = cnt[v[k][i]];
max_char = v[k][i];
}
else if(max_cnt==cnt[v[k][i]]){
max_char = min(max_char, v[k][i]);
}
}
dna += max_char;
}
for(int i=0; i<M; i++){
for(int k=0; k<N; k++){
if(v[k][i]!=dna[i]) hamming_distance_cnt++;
}
}
cout<<dna<<'\n'<<hamming_distance_cnt;
}
ํ์ด
๊ฐ DNA์์ ๊ฐ์ฅ ๋น๋์๊ฐ ๋ง์ ์ํ๋ฒณ์ ์ฐพ์ต๋๋ค. ๋ง์ฝ ๋น๋์๊ฐ ๊ฐ๋ค๋ฉด ์ฌ์ ์์ผ๋ก ์ฐ์ ์ธ ์ํ๋ฒณ์ ๋ฝ์๋ ๋๋ค.
Hamming Distance๋ ๋ฝ์๋ธ ์ํ๋ฒณ๋ค๊ณผ ๋น๊ตํ์ ๋ ๋ค๋ฅผ ๊ฒฝ์ฐ์ ์ํ๋ฒณ์ ๊ฐ์๋ฅผ ์ ๋ถ ์ธ์ด ์ฃผ๋ฉด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 1932๋ฒ - ์ ์ ์ผ๊ฐํ (0) | 2022.04.04 |
---|---|
[๋ฐฑ์ค,c++] 16926๋ฒ - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ1 (0) | 2022.04.04 |
[๋ฐฑ์ค,c++] 18511๋ฒ - ํฐ ์ ๊ตฌ์ฑํ๊ธฐ (0) | 2022.04.03 |
[๋ฐฑ์ค,c++] 1052๋ฒ - ๋ฌผ๋ณ (0) | 2022.03.30 |
[๋ฐฑ์ค,c++] 2696๋ฒ - ์ค์๊ฐ ๊ตฌํ๊ธฐ (0) | 2022.03.29 |
[๋ฐฑ์ค,c++] 2422๋ฒ - ํ์ค์ ์ด ์ดํ๋ฆฌ์์ ๊ฐ์ ์์ด์คํฌ๋ฆผ์ ์ฌ๋จน๋๋ฐ (0) | 2022.03.27 |
๋๊ธ