반응형
https://leetcode.com/problems/check-if-all-1s-are-at-least-length-k-places-away/description/
간단 구현문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1의 index를 저장할 vector idx를 선언 후 nums를 순회하며 값을 저장해줍니다.
📔 풀이과정
1. 1이 없는경우 idx의 size가 0이고 거리는 항상 k이하이므로 true를 반환합니다.
2. idx의 원소를 순회하며 인접 원소의 거리가 k미만이라면 false를 반환합니다.
3. loop이후에는 모든 원소의 거리가 k이상이므로 true를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
bool kLengthApart(vector<int>& nums, int k) {
vector <int> idx;
for(int i = 0; i < nums.size(); i++) {
if(nums[i]) idx.push_back(i);
}
if(idx.size() == 0) return true;
for(int i = 0; i < idx.size() - 1; i++) {
if(idx[i+1] - idx[i] - 1 < k) return false;
}
return true;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.