코딩테스트 파이썬/Softeer
Softeer 연습문제(2단계) - 연탄의 크기
세용용용용
2024. 6. 25. 20:51
Candidate | Softeer Assessment UI
Candidate | Softeer Assessment UI
softeer.ai
나의 풀이
import sys
def _aksu(number):
answer = [number]
for i in range(2, int(number**(1/2)) + 1):
if (number % i == 0):
answer.append(i)
if ((i ** 2) != number):
answer.append(number // i)
return answer
def _main(hot_size):
ava_dict = {}
for i in hot_size:
now_ava = _aksu(i)
for j in now_ava:
if (j in ava_dict):
ava_dict[j] += 1
else:
ava_dict[j] = 1
answer = sorted(ava_dict.values(), key=lambda x:x)
return answer[-1]
home = int(sys.stdin.readline())
hot_size = list(map(int, sys.stdin.readline().rstrip().split()))
print(_main(hot_size))
시간 복잡도
for i in hot_size : 각 집을 순회 ( 선형 시간 복잡도 )
for j in now_ava : 약수를 순회하며 최종 dict 계산 ( 제곱근 시간 복잡도 )
해당 알고리즘 시간 복잡도 : 선형 제곱근 시간 복잡도 ( O(n * √n) )