class Solution {
public int[] solution(int[] heights) {
int[] answer = new int[heights.length];
for(int i=heights.length-1; i>=0; i--) {
for(int j=i-1; j>=0; j--) {
if(heights[j] > heights[i]) {
answer[i] = j+1;
break;
}
}
}
return answer;
}
}
-----------------
import java.awt.Point; import java.util.Stack; class Solution { public int[] solution(int[] heights) { int[] answer = new int[heights.length]; Stack<Point> st = new Stack<Point>(); for(int i=heights.length-1; i>=0; i--) { for(int j=i-1; j>=0; j--) { if(heights[i] < heights[j]) { st.push(new Point(i+1, j+1)); break; } else if(j==0) { st.push(new Point(i+1, 0)); } } } int size = st.size(); answer[0] = 0; for(int i=1; i<=size; i++) { answer[i] = st.pop().y; System.out.print(answer[i]+","); } return answer; } }
출처: www.programmers.co.kr
'알고리즘' 카테고리의 다른 글
Two some_leet code #1 (0) | 2020.01.22 |
---|---|
(JAVA) 가장 큰 수 (0) | 2018.10.26 |
(JAVA) 문자열을 정수로 바꾸기 (0) | 2018.10.25 |
(JAVA) 수박수박수박수박수박수? (0) | 2018.10.25 |
(JAVA) 소수 찾기 (0) | 2018.10.25 |