sontg123   3년 전

 더러운 코드로 통과 했습니다 좀더 깔끔하게 풀어보고싶어서 여러분들의 아이디어가 궁굼합니다

제 아이디어는

n번째 앞 에서의 증가수열과 n번째뒤에서의 감소수열의 최대개수를 합해서 -1했습니다 이중 가장 큰값을 저장해놓고 정답으로 냈구요

이렇게 하기위해서는 수열의 모든수를 기준으로 검사해야 하고 for(처음~끝) 까지 할때 앞 증가수열은 차근차근 하나씩 증가하니 할때마다 하나만 더해서 검사해주면 되는데 뒤에 감소수열은 처음부터 거의 전체를검사하여 만들어야하고 고민끝에 전체를 만들때 이를 chache로저장해놨다가 쓰는 방법으로했습니다 설명이 복잡한거처럼 코드도 드러워서 다른 아이디어가 궁굼합니다  

playsworld16   3년 전

제 코드를 공유합니다. 아이디어는 같습니다.

감소수열의 경우, 수열을 뒤집으면 증가수열을 구하는 것과 같습니다.

upper[x] 는 0~x까지의 최장 증가수열의 길이,

lower[x] 는 x~끝까지의 최장 감소수열의 길이입니다.

tmzbqm   3년 전

코드 잘 보고 갑니다

댓글을 작성하려면 로그인해야 합니다.