
문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
배열 arr가 주어졌을 때, 배열의 모든 요소를 오른쪽에 있는 요소 중 가장 큰 요소로 바꾸고, 마지막 요소를 -1로 바꿔라.
이렇게 한 후에, 배열을 반환해라.
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의 오른쪽에 요소가 없다.
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;
}
}