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 ;
}
}
if 문 하나에 3개의 로직을 담을수 있지만 조금더 코드의 가독성을 높이기 위해 분리
ReplyDelete