Written by
최태열
on
on
[Python][프로그래머스][Level2] 쿼드압축 후 개수 세기
[Python][프로그래머스][Level2] 쿼드압축 후 개수 세기
코드
answer=[0,0]
def quadzip(arr):
if len(arr)==1:
answer[arr[0][0]]+=1
return
for i in arr:
if abs(arr[0][0]-1) in i:
break
else:
answer[arr[0][0]]+=1
return
quadzip([i[:len(arr)//2] for i in arr[:len(arr)//2]])
quadzip([i[len(arr)//2:] for i in arr[:len(arr)//2]])
quadzip([i[:len(arr)//2] for i in arr[len(arr)//2:]])
quadzip([i[len(arr)//2:] for i in arr[len(arr)//2:]])
def solution(arr):
quadzip(arr)
return answer
일단 먼저 arr을 4등분해서 재귀하는 방식으로 풀었다.
만약에 arr의 길이가 1일 경우는 마지막까지 안나뉜 경우 이므로 answer의 해당 부분을 증가시킨다.
arr 안의 값이 모두 같다면 answer 의 해당 부분을 증가시키고 return 한다.
아닐 경우 4분의 1로 나눠서 다시 반복한다.
Discussion and feedback