본문 바로가기
CodeSignal

arrayChange

by Doromi 2023. 12. 9.
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