문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
이진 배열 nums와 정수 k가 주어졌을 때, 모든 1이 서로 최소 k칸 이상 떨어져 있으면 true, 그렇지 않다면 false를 반환해라.
#1
Input: nums = [1, 0, 0, 0, 1, 0, 0, 1], k = 2
Output: true
#2
Input: nums = [1, 0, 0, 1, 0, 1], k = 2
Output: false
class Solution {
public boolean kLengthApart(int[] nums, int k) {
int lastIndex = -1;
for(int i = 0; i < nums.length; i++){
if(nums[i] == 1){
if(lastIndex != -1 && i - lastIndex - 1 < k){
return false;
}
lastIndex = i;
}
}
return true;
}
}