1+ def sq (n : int ):
2+ if n == 1 :
3+ return True
4+ q , r = divmod (n , 2 )
5+ if r == 0 :
6+ sq (q )
7+ else :
8+ return
9+
10+ def solve (n :int , alpha : int ):
11+ if n < 10 and n % 2 == 1 :
12+ return n , alpha
13+ elif n >= 10 and n % 2 == 1 :
14+ alpha += 1
15+ return solve (n - 1 , alpha )
16+ n = n // 2
17+ return solve (n , alpha )
18+
19+ def solution (n : int ):
20+ dic = {1 : 1 , 3 : 2 , 5 : 2 , 7 : 3 , 9 : 2 }
21+
22+ if n <= 2 or sq (n ):
23+ return 1
24+
25+ if n in dic :
26+ return dic [n ]
27+
28+ if n % 2 == 0 :
29+ n , alpha = solve (n , 0 )
30+ answer = dic [n ] + alpha
31+ else :
32+ n , alpha = solve (n - 1 , 0 )
33+ answer = dic [n ] + alpha + 1
34+ return answer
35+
36+ # 테스트 1 〉 통과 (0.00ms, 10.3MB)
37+ # 테스트 2 〉 통과 (0.00ms, 10.3MB)
38+ # 테스트 3 〉 통과 (0.00ms, 10.2MB)
39+ # 테스트 4 〉 통과 (0.01ms, 10.2MB)
40+ # 테스트 5 〉 통과 (0.01ms, 10.3MB)
41+ # 테스트 6 〉 통과 (0.01ms, 10.3MB)
42+ # 테스트 7 〉 통과 (0.01ms, 10.3MB)
43+ # 테스트 8 〉 통과 (0.01ms, 10.3MB)
44+ # 테스트 9 〉 통과 (0.01ms, 10.2MB)
45+ # 테스트 10 〉 통과 (0.01ms, 10.2MB)
46+ # 테스트 11 〉 통과 (0.01ms, 10.1MB)
47+ # 테스트 12 〉 통과 (0.01ms, 10.3MB)
48+ # 테스트 13 〉 통과 (0.01ms, 10.3MB)
49+ # 테스트 14 〉 통과 (0.01ms, 10.1MB)
50+ # 테스트 15 〉 통과 (0.01ms, 10.3MB)
51+ # 테스트 16 〉 통과 (0.01ms, 10.2MB)
52+ # 테스트 17 〉 통과 (0.01ms, 10.2MB)
53+ # 테스트 18 〉 통과 (0.01ms, 10.3MB)
0 commit comments