[BOJ] - 1969. DNA [완전탐색] - c++

ha·2022년 1월 29일
0

BOJ

목록 보기
17/28

https://www.acmicpc.net/problem/1969

완전탐색 풀이

-일반적으로 s[i][j]와 같이 '->'방향 우선 탐색하는데 s[j][i]로 열을 고정하고 탐색하는 방법으로 풀이
-switch문 break 없을 시 아래 구문도 실행된다

int N,M;
vector<string> s;

int main()
{
    cin>>N>>M;
    string tmp;
    int answer=0;
    int largest=0;
    for(int i=0;i<N;i++)
    {
      cin>>tmp;
      s.push_back(tmp);
    }
    
    for(int i=0;i<M;i++){
        int a=0,t=0,g=0,c=0;
        for(int j=0;j<N;j++){
            switch(s[j][i]){
            case 'A': a++;break;
            case 'T': t++;break;
            case 'G': g++;break;
            case 'C': c++;break;
            }
        }
        
        largest = max(a>c?a:c, g>t?g:t);
        answer += (N-largest);
        if(a==largest) cout<<'A';
        else if(c==largest) cout<<'C';
        else if(g==largest) cout<<'G';
        else cout<<'T';
    }
    cout<<'\n'<<answer;
        
  
}

0개의 댓글