문제
특정 인덱스의 이웃값이 비어있는지 체크한 후 비어있으면
꽃을 심고 그렇지 않을 경우 넘어가며 주어진 n만큼 꽃을 심을 수 있는지 판단하는 문제
풀이 -> 크기가 2 * 10^4 정도의 작은 배열이었기 때문에 주어진 flowerbed보다 크기가 2 큰 새로운 배열 custom을 선언해서
맨 앞과 맨 끝에 0을 각각 넣고 인덱스 1부터 flowerbed_size + 1에 배열 flowerbed를 복사했다.
그 후 1부터 flowerbed_size까지 체크하며 꽃을 심을 땅을 셌다.
class Solution {
public boolean canPlaceFlowers(int[] flowerbed, int n) {
int count = 0;
int size = flowerbed.length;
int[] custom = new int[size + 2];
custom[0] = 0;
custom[size + 1] = 0;
for(int i = 0; i < size; i++) {
custom[i + 1] = flowerbed[i];
}
for(int i = 1; i <= size; i++) {
if (custom[i] == 0 && custom[i - 1] == 0 && custom[i + 1] == 0) {
count += 1;
custom[i] = 1;
}
}
if (count >= n){
return true;
}
return false;
}
}
'코딩테스트' 카테고리의 다른 글
[leetcode] 345. Reverse Vowels (1) | 2024.06.07 |
---|---|
[leetcode] 739. Daily Temperatures (0) | 2024.06.06 |
[leetcode] 208. Implement Trie(Prefix Tree) (0) | 2024.06.05 |
[leetcode] 136. Single Number (0) | 2024.06.05 |
[leetcode] 338. Counting Bits (0) | 2024.06.03 |