2018. 9. 15. 16:34, 알고리즘/BOJ
https://www.acmicpc.net/problem/1042
처음 문제를 본 후로 무려 4개월이 지난 지금에야 해결에 성공했네요. 뭔가 DP스럽게 생겼기 때문에 우선 $D_i$를 DNA[1 to i]에서 만들 수 있고 DNA[1 to i-1]에서는 만들어낼 수 없는 unique DNA sequence의 갯수라고 합시다.(편의상 1-indexed로 둡시다.) 예를 들어
AAAAAAA
1
AAA test
일 경우 D는 (0,0,1,0,0,1,0)입니다.
이 때 $D_i$를 갱신하기 위해서는 $DNA_i$가 끝에 오는 새로운 코돈이 장착되어야 합니다. 이를 위해 A,C,G,T의 등장 위치를 기억하고 있다가 $A A + DNA[i]$, $A C +DNA[i]$, $A G+ DNA[i]$ , ... 등이 만들어지는 위치를 체크합니다. 이 때 i 이전에 동일한 코돈이 언제 등장했는가를 기억하고 있어야 합니다. 이를 이용해 D 테이블을 채워나가야 하고, 세세하게 더 설명해야할 게 많은데 넘어갈게요.. 코드를 참고해주세요.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 1044번: 팀 선발 (2) | 2018.09.16 |
---|---|
[BOJ] 16120번: PPAP (0) | 2018.09.15 |
[BOJ] 16139번: 인간-컴퓨터 상호작용 (0) | 2018.09.15 |
[BOJ] 3648번: Idol (0) | 2018.09.06 |
[BOJ] 12982번: 공 포장하기 2 (0) | 2018.09.06 |
[BOJ] 3090번: ŽIVICA (0) | 2018.09.05 |
Comments