본문 바로가기

알고리즘

(JAVA) 탑

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