코린이의 소소한 공부노트

[LeetCode/Easy] 1299. Replace Elements with Greatest Element on Right Side 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1299. Replace Elements with Greatest Element on Right Side

무지맘 2022. 12. 24. 01:35

1. Input

1) 정수 배열 arr

 

2. Output

1) 자기보다 오른쪽에 있는 요소들 중 가장 큰 수로 치환한 결과 배열

2) 가장 마지막 요소는 자기보다 오른쪽에 있는 요소가 없으므로 1로 치환한다.

 

3. Constraint

1) 1 <= arr.length <= 10^4

2) 1 <= arr[i] <= 10^5

 

4. Example

Input: arr = [17,18,5,4,6,1] -> Output: [18,6,6,6,1,-1]

설명:

- index 0 -> 가장 큰 수는 index 1 (18)

- index 1 -> 가장 큰 수는 index 4 (6)

- index 2 -> 가장 큰 수는 index 4 (6)

- index 3 -> 가장 큰 수는 index 4 (6).

- index 4 -> 가장 큰 수는 index 5 (1)

- index 5 -> 가장 마지막 요소이므로 -1

 

5. Code

1) 첫 코드(2022/06/16)

if(arr.length == 1)
    return new int[] {-1};

for(int i=0 ; i<arr.length-1 ; i++){
    int max = 0;
    int max_index = 0;
    for(int j=i+1 ; j<arr.length ; j++)
        if(arr[j] > max){
            max = arr[j];
            max_index = j;
        }
    for(int k=i ; k<max_index ; k++)
        arr[k] = max;
    i = max_index -1;
}

arr[arr.length-1] = -1;
return arr;