문제
- 화단에서 꽃 몇 송이를 심을 수 있는가?
- 화단에 심은 꽃이 n보다 같거나 작은가?
해결방법
- 세가지 인덱스의 값을 비교하면서 n을 줄여나가기
- n이 만약 0 보다 크다면 false 작으면 true.
public class Solution {
public boolean canPlaceFlowers(int[] flowerbed, int n) {
for(int i = 0; i < flowerbed.length; i++) {
int pre = i-1 < 0 ? 0 : flowerbed[i-1];
int post = i+1 >= flowerbed.length ? 0 : flowerbed[i+1];
int curr = flowerbed[i];
if(pre == 0 && post == 0 && curr == 0) {
flowerbed[i] = 1;
n--;
}
}
return n > 0 ? false : true;
}
}
코드 구성은 굉장히 단순합니다. 세가지 index를 구한 뒤 flowerbed에 해당하는 index의 값이 세 개 다 0이면 꽃을 심어줍니다 (flowerbed[i] = 1). 그리고 n을 1만큼 줄여주는거죠. 이렇게 loop이 한 번 돌고 n이 0의 값보다 크면 false. 아니면 true.
'Algorithm > LeetCode' 카테고리의 다른 글
134. Gas Station (0) | 2022.01.26 |
---|---|
33. Search in Rotated Sorted Array (0) | 2022.01.23 |
167. Two Sum II - Input Array Is Sorted (0) | 2022.01.11 |
1010. Pairs of Songs With Total Durations Divisible by 60 (0) | 2022.01.03 |
811. Subdomain Visit Count (0) | 2022.01.02 |