시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 579 | 173 | 121 | 35.588% |
DNA 문자열은 뉴클레오타이드(A, C, G, T)로 이루어진 문자열이다. 어떤 DNA 문자열은 단백질로 바꿀 수 있는데, 이것은 아미노산으로 이루어진 길이가 0이 아닌 수열이다. DNA 변환 과정을 살펴보자.
가끔 DNA 문자열 중 하나 이상의 뉴클레오타이드가 사라지기도 한다. 이러한 현상을 결실이라고 한다. 예를 들어, DNA 문자열이 ACTG인데 결실이 일어난다면 ACG나 CG 등이 될 수 있다.
DNA 문자열과 코돈 변환 표가 주어졌을 때, 결실이 0번 이상 일어났을 때 나올 수 있는 서로 다른 단백질이 몇 개인지 출력하는 프로그램을 작성하시오.
첫째 줄에 DNA 문자열이 주어진다. 길이는 최대 2,500이다. 둘째 줄에는 코돈 변환 표에 들어있는 코돈의 개수 M이 주어지고, 이 수는 50보다 작거나 같다. 셋째 줄부터 M개의 줄에는 코돈 변환 표가 주어지는데, 각 줄에는 코돈과 아미노산이 순서대로 주어진다. 코돈은 A, C, G, T로만 이루어진 길이가 3인 문자열이고, 아미노산은 알파벳 소문자 또는 대문자로 이루어진 길이가 최대 20인 비어있지 않은 문자열이다. 코돈 변환 표에서 중복되는 코돈은 주어지지 않는다.
첫째 줄에 서로 다른 단백질 개수를 1,000,000,007로 나눈 나머지를 출력한다.
ACTG 4 ACT gua ACG sys ATG leu CTG thr
4
AAACCC 2 AAA thr CCC cys
3
AAATCCC 4 AAA gua TCC dop AAT dop CCC gua
5