행렬에는 1 ~ N^2 의 서로 다른 숫자로 구성되어 있다..
ex)
1 5 9
2 3 8
4 6 7
>> ans : 6 7 8 9
풀이 : 각 점에 대해 연속된 숫자가 주위에 있는지 확인한다. 재귀적으로 따라간다. 길이가 최대보다 길면 기록한다.
크게 재귀가 많이 일어나지는 않을 것으로 보이고 풀고 나면 DP 캐핑이 될 것 같기는 하다.
참신한 최선 풀이
vector<bool>(N^2,false) 에다가 i이 i-1 과 붙어있는가? 의 값을 찾아서 채운다.
최종적으로 이 불리안 어레이의 true가 가장 긴 부분이 정답이다.
https://www.careercup.com/question?id=5147801809846272
'Programming Problems > Recursive' 카테고리의 다른 글
이중 리스트의 모든 조합을 출력해보자. (0) | 2018.04.23 |
---|---|
폭탄 터트려서 최대 점수 얻기 (0) | 2018.04.22 |
안드로이드의 가능한 모든 비밀번호의 갯수를 세 보자. (0) | 2018.04.22 |
스트링 하나를 다른 한쪽에 끼워넣는 경우의 수 구하기 (0) | 2018.04.22 |
종이 최소 갯수의 정사각형 조각으로 자르기 (0) | 2018.04.22 |