Search
Duplicate

표현 가능한 이진트리

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

def isvalid(x): if len(x) == 1: return True if x[len(x)//2] == '0': return x.count('0') == len(x) else: return isvalid(x[:len(x)//2]) and isvalid(x[len(x)//2+1:]) def solution(numbers): answer = [] for num in numbers: flag = 0 # n층: 2**n-1 자리 수 표현 가능 for n in range(1, 7): rep = bin(num).replace('0b', '') if len(rep) > 2**n-1: continue rep = rep.rjust(2**n-1, '0') if isvalid(rep): flag = 1 answer.append(flag) return answer
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges