728x90
반응형
주어진 배열에서 각 요소를 증가시켜서(strictly increasing sequence) 증가 수열을 만들기 위해 필요한 최소 이동 횟수를 찾는 문제입니다.
여기서 "strictly increasing sequence"는 배열의 모든 요소가 바로 앞의 요소보다 크다는 것을 의미합니다.
예를 들어, 배열이 [1, 1, 3, 2]인 경우, 이 배열을 증가 수열로 만들기 위해 다음과 같이 이동할 수 있습니다:
두 번째 요소를 2로 증가: [1, 2, 3, 2]
네 번째 요소를 3으로 증가: [1, 2, 3, 3]
결과적으로 [1, 2, 3, 3]은 증가 수열이 됩니다. 최소 이동 횟수는 2입니다.
이 문제의 목표는 최소 이동 횟수를 찾아내는 것입니다.
int solution(int[] inputArray) {
int ret = 0;
int[] arr = new int[inputArray.Length];
arr[0] = inputArray[0];
for(int i = 1;i<inputArray.Length;i++){
if(arr[i-1]>=inputArray[i]){
ret += arr[i-1] - inputArray[i]+1;
arr[i] = arr[i-1]+1;
} else{
arr[i]=inputArray[i];
}
}
return ret;
}
728x90
반응형
'CodeSignal' 카테고리의 다른 글
areEquallyStrong (1) | 2023.12.10 |
---|---|
palindromeRearranging (2) | 2023.12.10 |
Are Similar? (2) | 2023.12.06 |
Add Border (0) | 2023.12.05 |
reverseInParentheses (0) | 2023.12.03 |