바이러스학
면접 대비시간 제한3초메모리 제한128 MB
14개 유전자 표본마다 같은 숫자 3개나 연속된 숫자 3개 묶음 4개와 같은 숫자 한 쌍으로 나뉘는지 판정합니다.
문제
새로 나타난 바이러스가 사람을 어떻게 감염시키는지는 아직 거의 밝혀지지 않았다. 다만 사람의 DNA에서 특이한 패턴을 하나 찾아냈는데, 이 패턴만 보면 그 사람이 바이러스에 취약한지 면역인지 알 수 있다. 질병관리센터에서 일하는 사람 전원의 DNA를 조사했더니 감염된 사람에게서만 이 패턴이 나타났다.
취약 여부를 알려 주는 유전자는 1번부터 9번까지 아홉 종류다. 대부분의 사람에게는 이 유전자가 14개 이상 있다. 어떤 사람이 취약하다고 판정되려면 다음을 만족해야 한다.
- DNA에 번호가 붙은 유전자가 정확히 14개 있어야 한다. 입력으로 주어지는 표본은 모두 이 조건을 만족하고, 한 표본에서 같은 번호의 유전자는 최대 3개까지 나온다. 유전자가 나열된 순서는 판정에 영향을 주지 않는다.
- 유전자 14개를 트리플이나 스트레이트 4묶음과 페어 1묶음으로 남김없이 나눌 수 있어야 한다.
- 트리플은 번호가 같은 유전자 3개다. 예를 들어 [7 7 7]
- 스트레이트는 번호가 1씩 커지는 유전자 3개다. 예를 들어 [1 2 3], [4 5 6], [7 8 9]. 번호는 순환하지 않아서 9 다음에 1이 이어지지 않는다.
- 페어는 번호가 같은 유전자 2개다. 예를 들어 [9 9]
유전자 하나를 두 묶음에 겹쳐 쓸 수는 없다. 이렇게 나누는 방법이 하나라도 있으면 그 사람은 바이러스에 취약하고, 어떤 방법으로도 나눌 수 없으면 면역이다.
번호가 붙은 유전자 14개로 이루어진 DNA 표본이 여러 개 주어진다. 표본마다 그 사람이 취약한지 면역인지 판정하는 프로그램을 작성하시오.
입력
첫째 줄에 표본의 개수 이 주어진다. ()
다음 개 줄에는 각 줄마다 한 사람의 DNA에 들어 있는 유전자 14개가 공백으로 구분되어 주어진다.
출력
표본마다 한 줄씩 출력한다. 그 사람이 바이러스에 취약하면 Vulnerable을, 면역이면 Immune을 출력한다.