입력된 두 배열에 같은 값들을 선으로 잇는데 이어진 선이 교차하지 않고 가장 많이 이을수 있는 선의 갯수를 돌려주는 문제.
문제 풀이를 위해 몇가지 방법을 생각하고 시험해보았다. 반복문을 사용하여 모든 경우 수를 테스트 해보는 법. 입력된 배열을 값들을 객체의 키값으로 사용하고 해당 키값의 인덱스들을 배열화 하고 첫배열의 값들을 바탕으로 해당 값을 이을지 안이을지를 구별하여 경우의 수를 찾는 방법 등.
~~대체로 생각해본 방법들이 모두 모든 경우의 수를 확인하고 최대값을 돌려주는 구조였다. 그래서 긴입력값의 경우 올바른 해를 돌려주기 위한 수행시간이 오래걸리는 문제를 확인하였고 해당 문제를 해결하기 위해 고민해본 코드도 해당이슈를 넘지 못하였다. 조금더 고민해봐야 겠다.
~~
~~고민된 풀이법에서 중복된 결과를 여러번 반복 하고 있을것이라는 생각이 들었다. 해서 해당 부분의 결과를 객체화하고 해당 과정을 반복하지 않게끔 하는 구조로 재구성하여 결과를 얻고자 하였다. 하지만 중복되는 부분을 명확하게 가를 기준이 애매하여 해당 부분에 대해 더 고민을 해봐야 할것 같다. ~~
이전 풀이들에서 고민했던것처럼 연산이 수행되는 와중에 중복 수행되는 부분을 한번만 수행하게끔 수정하여 제공된 문제들을 모두 통과하는 것을 확인함. 하지만 문제풀이의 최소 조건만 만족한것으로 여겨짐.
제공되는 더 나은 해결책을 제시한 다른 유저들의 결과를 참고 해보니 해당 유저의 경우 가질수 있는 두 배열의 index 선택에 따른 결과를 2차배열에 누적하여 주어지는 계산이 반복되지 않고 한번씩만 수행되게 풀이함.
해당 결과를 보고 어쩌면 무의식적으로 배열을 사용한 풀이법은 느리다라는 생각이 박혀 있는지도 모르겟다는 생각을 함. 좀더 유연한 풀이 방법을 생각해낼수 있도록 공부해야겠음.
수면 문제 조절중. 프로젝트 진도 나간것 없음.