코딩테스트

[leetcode] 605. Can Place Flowers

nayoon 2024. 6. 6. 15:06

문제

 

특정 인덱스의 이웃값이 비어있는지 체크한 후 비어있으면

꽃을 심고 그렇지 않을 경우 넘어가며 주어진 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