문제를 이해 못해서 엄청 해매다가 블로그에서 문제 풀어서 설명한 것 듣고 겨우 이해해서 풀었다
두번째 줄에 출력해야 하는 Hamming Distance는 각 자리의 Hamming Distance의 누적합이다.
Hamming Distance는 그 자리에 쓰인 알파벳이 아닌 다른 알파벳의 개수라고 보면 편하다. 그래서 코드를 보면 각 자리의 알파벳 개수를 구한 뒤에 ans += (n - cnt)
연산을 해준다.
#include <iostream>
#include <string>
using namespace std;
int n,m,ans;
string sans="";
int temp[50][4];
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
string s;
cin>>s;
for(int j=0;j<s.length();j++)
{
if(s[j]=='A')
{
temp[j][0]++;
continue;
}
else if(s[j]=='C')
{
temp[j][1]++;
continue;
}
else if(s[j]=='G')
{
temp[j][2]++;
continue;
}
else if(s[j]=='T')
{
temp[j][3]++;
continue;
}
}
}
for(int i=0;i<m;i++)
{
int cnt=0;
int idx=0;
for(int j=0;j<4;j++)
{
if(cnt<temp[i][j])
{
cnt=temp[i][j];
idx=j;
}
}
ans+=(n-cnt);
if(idx==0)
{
sans+='A';
}
else if(idx==1)
{
sans+='C';
}
else if(idx==2)
{
sans+='G';
}
else if(idx==3)
{
sans+='T';
}
}
cout<<sans<<endl<<ans<<endl;
}
백준 허브로 연동해 둔 저장소에 커밋이 안되는 문제를 발견했다. 이전에 메일로 토큰 만료됐다고 메세지 왔는데 방치해서 생긴 문제🫠