알고리즘

[leetcode]Replace Elements with Greatest Element on Right Side

JUNGKEUNG 2021. 7. 27. 12:32

배열이 주어지면 해당 배열의 arr모든 요소를 오른쪽에 있는 요소 중 가장 큰 요소로 바꾸고 마지막 요소를 -1로 바꾸는 문제이다.

 

이 문제의 핵심은 배열 어디서 부터 찾을것이고 어떻게 큰 값을 찾는지가 중요한것같다

public class Solution {
    public int[] replaceElements(int[] arr) {
        int max = -1;
        for(int i=arr.length-1; i>=0; i--){
            int v = arr[i];
            arr[i]=max;
            max = Math.max(v,max);
        }
        return arr;
    }
}

먼저 arr를 뒤에서 부터 돌게 해주었다.

arr의 인덱스 i를 변수 v에 담아주고 max값을 arr의 index i자리에 넣어 주었다.

그 이후 max값을 담아준 v와 현재 갖고 있는 max값 둘 중 큰값으로 교체해준다.

 

https://leetcode.com/explore/learn/card/fun-with-arrays/521/introduction/3259/