[LeetCode] Replace Elements with Greatest Element On Right Side

아르당·2026년 4월 18일

LeetCode

목록 보기
268/303
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

배열 arr가 주어졌을 때, 배열의 모든 요소를 오른쪽에 있는 요소 중 가장 큰 요소로 바꾸고, 마지막 요소를 -1로 바꿔라.

이렇게 한 후에, 배열을 반환해라.

Example

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

  • 인덱스 0 --> 인덱스 0의 오른쪽에 있는 가장 큰 요소는 인덱스 1(18)이다.
  • 인덱스 1 --> 인덱스 1의 오른쪽에 있는 가장 큰 요소는 인덱스 4(6)이다.
  • 인덱스 2 --> 인덱스 2의 오른쪽에 있는 가장 큰 요소는 인덱스 4(6)이다.
  • 인덱스 3 --> 인덱스 3의 오른쪽에 있는 가장 큰 요소는 인덱스 4(6)이다.
  • 인덱스 4 --> 인덱스 1의 오른쪽에 있는 가장 큰 요소는 인덱스 5(1)이다.
  • 인덱스 5 --> 인덱스 5의 오른쪽에 있는 요소가 없어서 -1을 넣는다.

#2
Input: arr = [400]
Output: [-1]
Explanation: 인덱스 0의 오른쪽에 요소가 없다.

Constraints

  • 1 <= arr.length <= 10^4
  • 1 <= arr[i] <= 10^5

Solved

class Solution {
    public int[] replaceElements(int[] arr) {
        int max = -1;

        for(int i = arr.length - 1; i >= 0; i--){
            int temp = arr[i];
            arr[i] = max;
            max = Math.max(max, temp);
        }

        return arr;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글