공부 일지/스터디 자료

9회차 스터디

Joshbla 2022. 8. 30. 23:49

주제 :

내 파트 :

 

9241번: 바이러스 복제

첫째 줄에 바이러스에 감염되기 전 DNA, 둘째 줄에 감염된 후의 DNA가 주어진다. DNA는 {A, G, C, T}로만 이루어져 있으며, 길이는 1보다 크거나 같고, 105보다 작거나 같다.

www.acmicpc.net


문제가 처음엔 잘 이해되지 않았지만 내가 이해한 것은 이렇다.

위 그림에서 AA가 GCG로 바이러스로 바뀐 것이다. 바뀌기 전 길이와 바뀐 후 길이는 다를 수 있다.

위에서 공식을 찾아보면

감염되지 않은 문자(색칠되지 않은 문자)의 갯수를 세서

감염된 후 문자의 길이에서 빼주면 삽입된 바이러스DNA의 길이를 구할 수 있다.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class 바이러스복제_9241 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String A = br.readLine();
        String B = br.readLine();

        int start = 0;
        int rightA = A.length()-1;
        int rightB = B.length()-1;

        while (start < A.length() && start < B.length()) {
            if (A.charAt(start) == B.charAt(start)) {
                start++;
                continue;
            }
            break;
        }
        int leftCnt = start + 1;
        int end = 0;
        while (rightA >=start && rightB >=start) {
            if (A.charAt(rightA) == B.charAt(rightB)) {
                rightA--;
                rightB--;
                end++;
                continue;
            }
            break;
        }
        System.out.println(B.length() - start - end);
    }
}