rueki
BOJ 1672. DNA 해독 본문
728x90
반응형
1672번: DNA 해독
N개의 A, G, C, T로 구성되어 있는 DNA 염기서열이 있다. 그리고 우리는 이 염기서열을 아래의 표를 이용하여 해독을 해야 한다. 해독 방법은 염기 서열에서 제일 끝에 있는 두 개의 염기를 An-1, An이
www.acmicpc.net
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
int arr[4][4] = {{0,2,0,1},{2,1,3,0},{0,3,2,1},{1,0,1,3}};
//A - 0, G-1, C-2, T-3
int num;
cin >> num;
string s;
cin >> s;
for(int i =0;i<s.length();i++)
{
if(s[i] == 'A')
{
v.push_back(0);
}
else if(s[i]=='G'){
v.push_back(1);
}
else if(s[i] == 'C')
{
v.push_back(2);
}
else{
v.push_back(3);
}
}
int n = v.size()-1;
for(int i =n;i>0;i--)
{
int a = v[i];
int b = v[i-1];
int val = arr[b][a];
v.erase(v.begin()+i-1, v.begin()+i+1);
v.push_back(val);
}
if(v[0] == 0)
{
cout<<"A"<<endl;
}else if(v[0]==1)
{
cout << "G"<<endl;
}else if(v[0]==2)
{
cout<<"C"<<endl;
}else{
cout<<"T"<<endl;
}
return 0;
}
728x90
반응형
'C,C++ 기초 및 자료구조' 카테고리의 다른 글
[따배C++]C++ 객체지향 프로그래밍 (0) | 2022.08.28 |
---|---|
메모리 동적할당 예제 (0) | 2020.10.14 |
깊이 우선 탐색 (Depth First Search) (0) | 2020.10.13 |
순차탐색과 이진탐색 (0) | 2020.10.10 |
C++ 클래스의 상속 (0) | 2020.10.09 |
Comments