10942번 - 팰린드롬?
근데 DFS 내에서 5번째 if문 안에 들어가는 값은
arr[S+1]==arr[E-1]
아닌가요?
배열에 팰린드롬이 하나도 없는 경우를 생각해보세요.
그럴수가 있나요 ?? S 하고 E가 같으면 무조건 팰런드롬 아닌가요???
아 제말은 길이 2 이상인 팰린드롬이 없을 때를 말한 겁니다.
1 2 3 4 5 같은 경우에는
chk[i][j]가 i == j인 경우를 제외하고 0이 저장되어 있으니까
구간 [i, j]에 대해 질문이 들어오면
다시 탐색하게 되겠죠?
그래서 우선 [i, j]가 팰린드롬이 아니더라도
chk[i][j]를 0이 아닌 값으로 바꾸어야 다음에 같은 질의에 대해 미리 저장된 값을 쓸 수가 있습니다.
그래서 저는 jjwdi0 님의 말씀에 맞게 코드를 아래와 같이 구현했습니다.
chk[i][j] 초기값을 -1으로 설정하고,
만약 부분 배열이 팰린드롬이라면 1, 아니라면 0을 저장하는 방식으로 메모이제이션을 실행했습니다.
햐.. ㅋㅋㅋ 하나만 생각하고 둘은 생각 못했네요 두분다 너무 감사드립니다. 메모제이션이 어떤거인지 조금이나마 알것 같습니다 !!
댓글을 작성하려면 로그인해야 합니다.
s2lsh90 6년 전