Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Data Structure
- Stack
- greedy
- sorting
- dynamic programming
- 파이썬
- Class
- 구현
- 코딩테스트
- 코테
- Binary Search
- Number Theory
- Counting
- hash table
- Tree
- simulation
- Math
- database
- 자바
- Matrix
- Method
- SQL
- string
- java
- bit manipulation
- implement
- geometry
- array
- two pointers
- Binary Tree
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 1437. Check If All 1's Are at Least Length K Places Away 본문
코딩테스트 풀이/JAVA
[LeetCode/Easy] 1437. Check If All 1's Are at Least Length K Places Away
무지맘 2022. 12. 25. 22:001. Input
1) 2진 배열 nums
2) 정수 k
2. Output
1) nums 내의 모든 1들이 최소 k만큼 떨어져 있다면 true를, 아니면 false를 반환
2) k만큼 떨어져 있다는 것은 1과 1 사이에 k개의 숫자가 있다는 뜻이다.
3. Constraint
1) 1 <= nums.length <= 10^5
2) 0 <= k <= nums.length
3) nums[i]는 0 또는 1이다.
4. Example
Input: nums = [1,0,0,0,1,0,0,1], k = 2 -> Output: true
설명:
- 1은 0번째, 4번째, 7번째에 있다.
- 0번째 ~ 4번째는 3만큼 떨어져 있다.
- 0번째 ~ 7번째는 6만큼 떨어져 있다.
- 4번째 ~ 7번째는 2만큼 떨어져 있다.
- 3, 6, 2 >= 2 이므로 true를 반환한다.
5. Code
1) 첫 코드(2022/07/08)
if(nums.length==1)
return false;
int former = 0;
for(int i=0 ; i<nums.length ; i++)
if(nums[i]==1){
former = i; break;
}
int later = 0;
for(int i=former+1 ; i<nums.length ; i++){
if(nums[i]==1){
later = i;
if(later-former-1<k)
return false;
former = later;
}
}
return true;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 1455. Check If a Word Occurs As a Prefix of Any Word in a Sentence (0) | 2022.12.25 |
---|---|
[LeetCode/Easy] 1450. Number of Students Doing Homework at a Given Time (0) | 2022.12.25 |
[LeetCode/Easy] 1431. Kids With the Greatest Number of Candies (0) | 2022.12.25 |
[LeetCode/Easy] 1408. String Matching in an Array (0) | 2022.12.24 |
[LeetCode/Easy] 1394. Find Lucky Integer in an Array (0) | 2022.12.24 |