본문 바로가기

Algorithm/Implementation

(C++) - LeetCode (easy) 1437. Check If All 1's Are at Least Length K Places Away

반응형

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

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.