만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

유전자 검색

면접 대비

시간 제한2초메모리 제한1024 MB

요약
DNA 문자열 S와 L이 주어질 때, L 안에서 S 자체와 S에서 한 글자를 지워 만든 모든 서로 다른 문자열, S에 한 글자를 넣어 만든 모든 서로 다른 문자열이 나타나는 횟수를 각각 센다.
난이도

보통10점 중 5점

유형
문자열, 해시맵, 완전 탐색, 시뮬레이션
정답자
아직 제출이 없습니다

문제

지난 10년 동안 생물학 분야는 크게 바뀌었다. 생물학적 정보를 디지털화하여 컴퓨터로 분석할 수 있게 되었기 때문이다. 가장 기본적인 분석 작업 중 하나는 검색 문자열 SS가 SS 이상의 길이를 가진 다른 문자열 LL 안에서 몇 번 나타나는지(또는 거의 나타나는지) 세는 것이다.

이 문제에서는 문자열 쌍 SS와 LL이 주어진다. 두 문자열은 모두 대문자 A, G, C, T로만 이루어져 있다. 다음 각 유형의 검색 문자열에 대해, 그 유형이 LL의 정확한 부분 문자열로 나타나는 횟수를 세어라.

  • 유형 1: 아무런 변경도 하지 않은 SS.
  • 유형 2: SS에서 문자 하나를 삭제하여 만들 수 있는 모든 서로 다른 문자열 (예를 들어 AGC는 AG, AC, GC가 될 수 있다).
  • 유형 3: SS에 문자 하나를 삽입하여 만들 수 있는 모든 서로 다른 문자열 (예를 들어 AG는 AAG, GAG, CAG, TAG, AGG, ACG, ATG, AGA, AGC, AGT가 될 수 있다).

SS를 서로 다르게 변형한 결과가 같은 문자열이 되면, 그 문자열이 나타나는 횟수는 한 번만 센다.

입력

입력 파일은 여러 개의 테스트 케이스로 이루어져 있으며, 각 테스트 케이스는 두 문자열 SS와 LL을 포함한다. SS의 길이는 2 이상이고 LL의 길이 이하이다. LL의 길이는 100 이하이다. 마지막 테스트 케이스 다음에는 0 하나만 있는 줄이 온다.

출력

각 테스트 케이스마다 케이스 번호(1부터 시작)를 출력하고, 그 뒤에 유형 1, 유형 2, 유형 3이 나타나는 횟수를 차례로 출력한다.

예제1

  1. 예제 1

    입력
    AGCT AGCTAGCT
    AAA AAAAAAAAAA
    AGC TTTTGT
    0
    
    예상 출력
    Case 1: 2 4 2
    Case 2: 8 9 7
    Case 3: 0 0 0