공부 일지/스터디 자료
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);
}
}