IT/자기계발 ( Leetcode )

2020-01-25] Check If All 1's Are at Least Length K Places Away

Bell_bear 2021. 1. 26. 00:07
반응형

오늘의 문제: leetcode.com/explore/challenge/card/january-leetcoding-challenge-2021/582/week-4-january-22nd-january-28th/3616/

이번 문제는 Easy 문제이다. 문제 예시를 보며 간단히 이해해보자.

 

주어지는 0,1로 이뤄진 1차원 배열에서 k 값 만큼 모든 1과 1사이가 떨어져 있는지 검사하는 문제이다.

 

 

 

예시 1번은 k가 2이고 각 1 사이끼리의 떨어진 index 거리가 3,2 이기 때문에 True

예시 2번은 k가 2이고 각 1 사이끼리의 떨어진 index 거리가 2,1 이기 때문에 False

 

간단하게, 1차원 배열의 for문을 돌면서, 값이 1인 index를 저장하여, 이전 저장한 index까지의 거리와 k를 비교

 

문제풀이)

class Solution:
    def kLengthApart(self, nums: List[int], k: int) -> bool:
        firstone=-1
        for i in range(len(nums)):
            if nums[i]==1:
                if firstone==-1:
                    firstone=i
                else:
                    if i-firstone-1 < k:
                        return False
                    else:
                        firstone=i
        return True
반응형