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
'코딩 공부 > Leetcode' 카테고리의 다른 글
[Python] 905. Sort Array By Parity (0) | 2025.01.30 |
---|---|
[Python] 283. Move Zeroes (0) | 2025.01.29 |
[Python] 1462. Course Schedule IV (0) | 2025.01.28 |
[Python] 941. Valid Mountain Array (0) | 2025.01.27 |
[Python] 1346. Check If N and Its Double Exist (0) | 2025.01.26 |