Thursday, August 29, 2019

605. can-place-flowers https://leetcode.com/problems/can-place-flowers/

605. can-place-flowers
  • 정방향 탐색하면서 앞뒤가 0이면 1로 변경하고 n–해준다.
  • n <= 작으면 return true
Runtime: 1 ms, faster than 100.00% of Java online submissions for Can Place Flowers.
Memory Usage: 38.6 MB, less than 100.00% of Java online submissions for Can Place Flowers.
class Solution {
    public boolean canPlaceFlowers(int[] flowerbed, int n) {
        if(flowerbed.length ==0){
            return false;
        }
        if(flowerbed.length==1){
            if(flowerbed[0] == 0){
                if(n <=1){
                    return true;
                }else{
                    return false;
                }
            }else{
                return n==0;
            }
        }

        for( int i=0; i<flowerbed.length; i++){
            if(flowerbed[i]==1){
                continue;
            }
            if(i ==0){
                if(flowerbed[i+1]==0){
                    n--;
                    flowerbed[i]=1;
                }
            }else if(i == flowerbed.length-1){
                if(flowerbed[i-1] == 0){
                    flowerbed[i] =1;
                    n--;
                }
            }else{
                if(flowerbed[i-1] == 0 && flowerbed[i+1]==0){
                    flowerbed[i] =1;
                    n--;
                }
            }
        }
        return n<=0;
    }
}

1 comment:

  1. if 문 하나에 3개의 로직을 담을수 있지만 조금더 코드의 가독성을 높이기 위해 분리

    ReplyDelete