arr1 : 현재의 인덱스로부터 증가하거나 유지되는 수열이 끝나는 위치를 저장해둔 배열 arr2 : 현재의 인덱스로부터 감소하는 수열이 끝나는 위치를 저장해둔 배열
arr1,arr2를 이용해서 각 부분배열의 시작위치(idx)로부터 최소의 나쁜 원소의 개수를 구해서 더하는 식으로 구현을 했습니다. 나쁜 원소의 개수를 구하는 방법은 부분배열의 길이 - arr1[idx] (부분배열의 길이 > arr1[idx]) , 부분배열의 길이 - arr2[idx] (부분배열의 길이 > arr2[idx]) 중에서 최소가 되는 개수를 가지고 구했습니다. 이런식으로 코딩했는데 틀렸습니다가 나오네요. 혹시 로직이 잘못된걸까요? 생각을 해도 모르겠어요ㅠㅠ 힌트라도 주시면 감사하겠습니다ㅠㅠ
snrnsidy 5년 전
다름이 아니고 아무리 생각을 해도 문제가 풀리지 않아서 질문을 드립니다...
arr1 : 현재의 인덱스로부터 증가하거나 유지되는 수열이 끝나는 위치를 저장해둔 배열
arr2 : 현재의 인덱스로부터 감소하는 수열이 끝나는 위치를 저장해둔 배열
arr1,arr2를 이용해서 각 부분배열의 시작위치(idx)로부터 최소의 나쁜 원소의 개수를 구해서 더하는 식으로 구현을 했습니다.
나쁜 원소의 개수를 구하는 방법은 부분배열의 길이 - arr1[idx] (부분배열의 길이 > arr1[idx]) , 부분배열의 길이 - arr2[idx] (부분배열의 길이 > arr2[idx]) 중에서 최소가 되는 개수를 가지고 구했습니다.
이런식으로 코딩했는데 틀렸습니다가 나오네요.
혹시 로직이 잘못된걸까요? 생각을 해도 모르겠어요ㅠㅠ 힌트라도 주시면 감사하겠습니다ㅠㅠ