Algorithm/LeetCode

605. Can Place Flowers

땅다람쥐 2022. 1. 19. 02:28

문제

  • 화단에서 꽃 몇 송이를 심을 수 있는가?
  • 화단에 심은 꽃이 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