ㅠㅠ 꽤 시간 걸렸다... 고통스러웠음
처음엔 정렬을 어떤식으로 할까 계속 생각을 하다가 아무리 생각해봐도 시간복잡도가 N^2이 나왔다.
그래서 차분하게 다시 내가 해야하는것이 무엇인가에 대해 생각해봤다.
우선 인풋 벨류가 시간으로 정렬이 되었으니 이것은 건드리지 말고 생각을 해보면,
1. 최소값을 찾는것이 중요하다.
2.계산된 값이 이전 업데이트 된 계산된 값보다 큰지
이 두개에 집중해서 코드를 짜다보니 되게 쉽게 정답은 나왔다.
class Solution {
public int solution(int[] A) {
int N = A.length;
if(N == 0){
return 0;
}
int min = Integer.MAX_VALUE;
int result = 0;
for(int i = 0; i < N; i++){
if(A[i] < min){
min = A[i];
}
if(A[i] - min > result){
result = A[i] - min;
}
}
return result;
}
}