728x90
반응형
[문제]
N = A*B 를 만족하는 A, B 중 2*(A+B)의 값이 가장 작은 경우를 찾는 문제
[풀이]
1 부터 N의 제곱근 사이에서 N의 약수를 찾고, 가장 큰 약수를 A로 여겨 2*(A+N/A) 값을 반환
시간복잡도 : O(sqrt(N))
import math
def solution(N):
# write your code in Python 3.6
root = int(math.sqrt(N))
A = 1
for i in range(1, root+1) :
if N%i == 0 :
A = i
return 2*(A + int(N/A))
728x90
'기타 > Codility' 카테고리의 다른 글
[Demo] MissingInteger (0) | 2022.06.11 |
---|---|
[Easy] Nesting (0) | 2022.06.10 |
[Easy] FrogRiverOne (0) | 2022.06.09 |
[Easy] CountDistinctSlices - 70% (0) | 2022.06.08 |
[Easy] TapeEquilibrium (0) | 2022.06.08 |