출제자: 테쓰
- 출제 이유
- 조건을 잘 줘야하는 문제로 골랐다.
class Solution(object):
def canPlaceFlowers(self, flowerbed, n):
count=0
fl=len(flowerbed)
for i in range(fl):
if flowerbed[i]==1 or (i+1< fl and flowerbed[i+1]==1) or (i-1>=0 and flowerbed[i-1]==1):
continue
flowerbed[i]+=1
count+=1
if count>=n:
return True
else:
return False
- 간단하다고 생각했는데, 조건을 쓰자니 많이 헷갈렸다. 테쓰가 소개해준
[0] + flowerbed + [0]
이 방법으로 조건문을 훨씬 간단하게 쓸 수 있을 것 같다.
- 풀진 않았지만 ㅋㅋㅋㅋ 오 저거
[0] + flowerbed + [0]
하는 꼼수 아주 잘 배웠다. 고마워!
class Solution(object):
def canPlaceFlowers(self, flowerbed, n):
if n == 0: return True
flowerbed = [0]+flowerbed+[0]
for idx in range(1, len(flowerbed)-1):
if flowerbed[idx] == 0 and flowerbed[idx-1] == 0 and flowerbed[idx+1] == 0:
flowerbed[idx] = 1
n -= 1
if n == 0:
return True
return False
- 문제를 풀다보면 arr를 풀기 편한대로 바꿀 수 있다는걸 까먹고는 하는데, 이를 상기시켜준 문제였다.
- 주어진 arr를 바꿔서 하니 조건을 주기가 훨씬 쉬워졌다 !