강의로 돌아가기
서완길

얼마나 빨리 풀어야하는거죠?

이진탐색급으로 빨리 탐색하도록 만들었는데도 안풀리네요...

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def zin_solution(n, list, result) :
    if len(list) == 1 : return result

    devide_number = len(list)//3
    if n in list[:devide_number] :
        result += "1"
        return zin_solution(n,list[:devide_number], result)
    elif n in list[devide_number: 2*devide_number] :
        result += "2"
        return zin_solution(n, list[devide_number: 2*devide_number], result)
    else:
        result += "4"
        return zin_solution(n, list[2*devide_number:], result)


def solution(n) :
    i = 1
    count = 0
    while True :
        count += 3**i
        if n <= count :
            break
        i += 1

    start = sum([3**a for a in range(1, i)])
    end = sum([3 ** a for a in range(1, i+1)])
    list = [a for a in range(start+1, end+1)]

    return zin_solution(n, list, "")
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.