[boj][c++] 1969 DNA

ppparkta·2022년 8월 8일
1

Problem solving

목록 보기
25/65

1969 DNA


문제를 이해 못해서 엄청 해매다가 블로그에서 문제 풀어서 설명한 것 듣고 겨우 이해해서 풀었다

두번째 줄에 출력해야 하는 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;
}

git hub 토큰 이슈

백준 허브로 연동해 둔 저장소에 커밋이 안되는 문제를 발견했다. 이전에 메일로 토큰 만료됐다고 메세지 왔는데 방치해서 생긴 문제🫠

profile
겉촉속촉

0개의 댓글