[BOJ] 12013번: 248

https://www.acmicpc.net/problem/12013


D[i][j]를 num[i~j]로 만들 수 있는 수입니다. 이 때, unique한 수로 만들 수 없으면 0으로 둡니다. 예를 들어 1 1 1 1일 경우 D[1][2]는 2, D[1][3]은 0이 됩니다. 이 때 D[i][i] = num[i]로 두고, D[i][j]는 sep = i to j-1에 대해 D[i][sep] == D[sep+1][j]일 경우 D[i][j] = max(D[i][j], D[i][sep]+1)입니다.


이 때 D 테이블의 최댓값이 정답입니다.


https://github.com/blisstoner/BOJ/blob/master/12013.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 10846번: Bali Sculptures  (0) 2018.05.28
[BOJ] 1627번: 결투  (4) 2018.05.27
[BOJ] 12094번: 2048  (7) 2018.05.25
[BOJ] 1214번: 쿨한 물건 구매  (0) 2018.05.24
[BOJ] 13258번: 복권 + 은행  (0) 2018.05.24
[BOJ] 14867번: 물통  (0) 2018.05.23
  Comments