1672

#include <stdio.h>

// 염기 서열 인덱스 구하기 메서드
int dna_index (char dna){ 
    switch (dna)
        {
        case 'A':
            return 0;
            break;
        case 'G':
            return 1;
            break;
        case 'C':
            return 2;
            break;
        case 'T':
            return 3;
            break;
        
        default:
            break;
        }
    return -1;
}

int main(void){
    // 염기 서열 해독을 위한 표
    char dna_list [4][4] = {
        {'A', 'C', 'A', 'G'}, 
        {'C', 'G', 'T', 'A'},
        {'A', 'T', 'C', 'G'},
        {'G', 'A', 'G', 'T'}};
    
    // 염기 서열 길이
    int num;
    scanf("%d", &num);

    // 염기 서열 입력
    char dna [num];
    scanf("%s", dna);

    // 염기 서열 해독
    for(int k = num-1; k > 0; k--){
        char pre_dna = dna[k-1];    // 이전 염기 (An-1을 행)
        char cur_dna = dna[k];      // 현재 염기 (An을 열)

        int i=dna_index(pre_dna), j=dna_index(cur_dna);
        dna[k] = 0;                 // 현재 염기를 비우고
        dna[k-1] = dna_list[i][j];  // 해독한 염기를 이전 염기에 넣기
    }

    // 해독된 최종 염기 출력
    printf("%s", dna);
    return 0;
}

+ Recent posts