탑 높이가 중복되는 것이 없다고 가정하고 풀어서, 테스트 케이스 반만 통과되었다.
탐색하면서 스택에 넣고, 나중에 출력했다.
import java.util.*;
class Solution {
public int[] solution(int[] heights) {
int flag;
Stack s=new Stack();
for(int i=heights.length-1;i>=0;i--){
flag=i;
for(int j=i;j>=0;j--){
System.out.println(heights[i]+"-"+heights[j]);
if(heights[i]<heights[j]){
// 스택에 해당 수 없는지 확인
if(s.search(heights[j])==-1){
s.push(j+1);
System.out.println(heights[j]+"들어감");
break;
} {
System.out.println(heights[j]+"는 스택에 없음");
}
}else{
flag--;
System.out.println("0들여보낼까");
if(heights[i]!=heights[j]&&flag==-1){
s.push(0);
System.out.println("0들여보냄");
}
}
}
}
// 마지막 수는 수신할 게 없네
s.push(0);
int n;
ArrayList al=new ArrayList();
while(!s.isEmpty()){
n=s.pop();
System.out.println(n);
al.add(n);
}
int size=0;
int[] answer={};
answer=new int[al.size()];
for(int temp : al){
answer[size++] = temp;
}
return answer;
}
}
'Algorithm > Practice' 카테고리의 다른 글
프로그래머스 - 주식가격 (Python) (0) | 2021.03.30 |
---|---|
프로그래머스 - 다리를 지나는 트럭 (Python) (0) | 2021.03.30 |
프로그래머스 - 고득점 SQL Kit (0) | 2021.03.11 |
백준 알고리즘 - 1339 단어 수학 (JAVA) (0) | 2020.11.29 |
백준 알고리즘 - 2309 일곱 난쟁이 (JAVA) (0) | 2020.11.29 |