IT/자기계발 ( Leetcode )
2020-01-25] Check If All 1's Are at Least Length K Places Away
Bell_bear
2021. 1. 26. 00:07
반응형
이번 문제는 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
반응형