728x90
SMALL
안녕하세요 남갯입니다.
public class Fish {
public static int solution(int[] A, int[] B) {
// write your code in Java SE 8
int result = 0;
int max = 0;
Stack<Integer> downFishStack = new Stack<>();
for (int i = 0; i < A.length; i++) {
if (B[i] == 0) {
//왼쪽으로 가는방향인데 오른쪽으로 가는 방향이 없을경우
if (downFishStack.isEmpty()) {
result++;
}
//왼쪽으로 가는애인데 오른쪽으로 가는 방향이 있었을 경우
else {
// 오른쪽방향의 max값보다 왼쪽방향의 값이 클경우 오른쪽 방향 값들은 모두 삭제
while (!downFishStack.empty() && downFishStack.peek() < A[i]) {
downFishStack.pop();
}
if (downFishStack.empty()) {
result++;
}
}
} else if (B[i] == 1) {
downFishStack.push(A[i]);
}
}
return result + downFishStack.size();
}
}
728x90
LIST
'IT > 알고리즘' 카테고리의 다른 글
[코딜리티] - Lesson 7.StoneWall (0) | 2019.09.09 |
---|---|
[코딜리티] - Lesson 7. Nesting (0) | 2019.09.09 |
[코딜리티] - Lesson 7. Brackets (0) | 2019.09.03 |
[코딜리티] - Lesson 6. Triangle (0) | 2019.09.02 |
[코딜리티] - Lesson 5. CountDiv (1) | 2019.08.27 |