Written by
최태열
on
on
[Python][프로그래머스][Level3] 풍선 터트리기
[Python][프로그래머스][Level3] 풍선 터트리기
코드
def solution(a):
if len(a)<=2:
return len(a)
ck_left=[i for i in a]
ck_right=[i for i in a]
for idx in range(1,len(a)):
if ck_left[idx]>ck_left[idx-1]:
ck_left[idx]=ck_left[idx-1]
for idx in range(len(a)-2,-1,-1):
if ck_right[idx]>ck_right[idx+1]:
ck_right[idx]=ck_right[idx+1]
answer=2
for idx in range(1,len(a)-1):
if a[idx]<=ck_left[idx-1] or a[idx]<=ck_right[idx+1]:
answer+=1
return answer
각 위치에 대하여 왼쪽에 있는 가장 작은 값을 ck_left에
각 위치에 대하여 오른쪽에 있는 가장 작은 값을 ck_right에 저장했다.
큰 수를 한 번은 터트릴 수 있기 때문에 왼쪽 혹은 오른쪽에 하나라도 큰 값이 존재한다면 조건을 만족하는 풍선이 된다.
Discussion and feedback