코딩 공부/Leetcode
[Python] 1299. Replace Elements with Greatest Element on Right Side
일하는 공학도
2025. 1. 28. 11:40
728x90
난이도 : easy
index가 i일 때, i+1부터 끝까지 수 중 가장 큰 값을 arr[i]로 바꿔주는 문제
return은 arr로만 진행
class Solution:
def replaceElements(self, arr: List[int]) -> List[int]:
for i in range(len(arr)-1):
arr[i] = max(arr[i+1:])
arr[-1] = -1
return arr
처음 풀었던 방법
말 그대로 max값으로 바꿔주고, 마지막 줄을 -1로 바꾸는 형식
하지만 time limit에 걸렸다..
class Solution:
def replaceElements(self, arr: List[int]) -> List[int]:
stop = -1
for i in range(len(arr)-1, -1, -1):
x = arr[i]
arr[i] = stop
if x > stop:
stop = x
return arr
그렇게 새로 푼 방법!
역순으로 전개하는데, stop값으로 arr[i]를 바꿔준다
바꾼 이후로 stop값을 최대값으로 바꿔줌
Runtime : 16ms (87.75%)
Memory : 18.62MB (47.07%)
728x90