이번 연습 문제에서는 RNA 서열을 단백질로 번역해요.
RNA 가닥은 뉴클레오티드 세 개로 이루어진 서열인 코돈으로 구성돼요. 코돈은 각각 하나의 아미노산으로 번역돼요. 이렇게 만들어진 아미노산이 서로 결합하면 단백질이 돼요.
실제로는 64개의 코돈이 있고, 이 코돈들은 다시 20가지 아미노산에 대응해요. 하지만 이번 연습 문제에서는 64개 중 몇 개만 사용해요. 사용하는 코돈은 아래 표에 정리해 두었어요:
| 코돈 | 아미노산 |
|---|---|
| AUG | Methionine |
| UUU, UUC | Phenylalanine |
| UUA, UUG | Leucine |
| UCU, UCC, UCA, UCG | Serine |
| UAU, UAC | Tyrosine |
| UGU, UGC | Cysteine |
| UGG | Tryptophan |
| UAA, UAG, UGA | STOP |
예를 들어, RNA 문자열 “AUGUUUUCU”에는 “AUG”, “UUU”, “UCU”라는 세 개의 코돈이 있어요. 이 코돈들은 각각 Methionine, Phenylalanine, Serine에 대응해요.
위 표에서 볼 수 있듯이 “STOP” 코돈이 세 개 있어요. 이 코돈 중 하나라도 만나면 나머지 서열은 무시해요. 단백질이 이미 완성된 거예요.
예를 들어, “AUGUUUUCUUAAAUG”에는 STOP 코돈(“UAA”)이 들어 있어요. 이 지점에 도달하면 처리를 멈춰요. 따라서 그 앞부분(즉, “AUGUUUUCU”)만 보고, 그 뒤에 오는 코돈(즉, “AUG”)은 고려하지 않아요.
위키백과의 단백질 번역에 대해 더 알아봐요.
Exercism에 가입하고 PHP 트랙을 개념 11개연습 문제 122개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.
명령형 접근법, 패턴 매칭이나 재귀, 고차 함수 같은 함수형 아이디어, 그리고 C++와 Assembly로 하는 저수준 코딩까지, 이 연습 문제를 푸는 11가지 서로 다른 방법을 살펴봐요.