프로그래머스(https://programmers.co.kr/learn/courses/30/lessons/42588)
자바 Level2 문제의 탑 이다.
일단, 2h정도 적어보며 생각을 해보았는데, while문을 돌려서 list와 같이 지우면서 접근해 보려고 하는 중이다.
heights 배열의 인덱스 탐색에서 문제가 생겨서 그 부분에 대한 보완이 필요하다는 것을 느끼고 있다.
일단 더 진행해보고 부딪쳐보면서 겪어야 윤곽이 잡힐 듯 하다. Queue를 가지고 진행해보고 싶은 마음이 큰데, 일단 여러방면으로 진행을 해보려고 계획 중에 있기에 많이 거쳐봐야할 듯 하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package programmers_탑;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
public class subClass {
public int[] solution(int[] heights) {
int[] answer = {};
List<Integer> list = new LinkedList<Integer>();
List<Integer> answerList = new ArrayList<Integer>();
Stack<Integer> stack = new Stack<Integer>();
for(int i=1 ; i<=heights.length;i++) {
list.add(heights[heights.length-i]);
}
/*for(int i=0; i<list.size();i++) {
System.out.println(list.get(i));
}*/
while(!list.isEmpty()) {
stack.push(list.get(0)); list.remove(0);
for(int i=0; i<list.size();i++) {
if(stack.peek().intValue() <list.get(i).intValue()) {
stack.pop(); answerList.add(i);
break;
}
}
}
answer =new int[answerList.size()];
for(int i=0; i<answerList.size();i++) {
answer[i] = answerList.get(i);
System.out.println(answer[i]);
}
return answer;
}
}
|
cs |
'자바 초급문제로 맨땅에 해딩하기' 카테고리의 다른 글
자바 초급문제 30. 제일 작은 수 제거하기 (0) | 2020.05.11 |
---|---|
자바 초급문제 29. 정수 제곱근 판별 (0) | 2020.05.11 |
자바 Level 2 문제, 4. 124 나라의 숫자 완성 (0) | 2020.04.30 |
자바 Level 2 문제, 4-2. 124 나라의 숫자 진행 2일 차. (0) | 2020.04.29 |
자바 Level 2 문제, 4-1. 124 나라의 숫자 진행 중. (0) | 2020.04.28 |