package codility.num5;
import java.util.Stack;
public class Solution {
public int solution(int[] A, int[] B) {
// write your code in Java SE 8
Stack<Integer> aliveFish = new Stack<>();
// 시작 인덱스 추가
aliveFish.push(0);
int i = 1;
while (i < A.length) {
// 두 물고기가 만나면
if(B[i] == 0 && B[aliveFish.peek()] ==1){
// 살아남은 물고기값보다 현재 탐색하는 물고기 값이 크다면
if(A[i] > A[aliveFish.peek()]){
// 살아남은 물고기 스택에서 현재 물고기를 pop
aliveFish.pop();
}else{
// 그렇지 않으면 인덱스++
i++;
}
}// 두 물고기가 만나지 않으면 추가
else{
aliveFish.push(i);
// 인덱스 ++
i++;
}
}
// 살아남은 물고기들의 수 리턴
return aliveFish.size();
}
}
728x90
반응형
'Algorithm > Codility' 카테고리의 다른 글
Triplet (0) | 2022.04.14 |
---|---|
Codility - Distinct (0) | 2022.04.13 |
Lesson7 - Brackets (0) | 2022.03.22 |
Lesson2. OddCurrencesInArray (0) | 2022.03.09 |
Lesson2. CyclicRotation (0) | 2022.03.08 |