본문 바로가기

IT/알고리즘

[코딜리티] - Lesson 7. Fish


안녕하세요 남갯입니다.






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();
}
}


https://app.codility.com/demo/results/trainingFVVXDP-CBH/

'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