https://school.programmers.co.kr/learn/courses/30/lessons/138475
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드 & 풀이
def solution(e, starts):
num_count = [0] * (e + 1)
for i in range(1, int(e ** 0.5) + 1):
for j in range(i, e // i + 1):
num = i * j
if i == j:
num_count[num] += 1
else:
num_count[num] += 2
max_num = [0] * (e + 1)
max_idx = e
for i in range(e, 0, -1):
if num_count[i] >= num_count[max_idx]:
max_idx = i
max_num[i] = max_idx # i 이상에서 가장 많이 등장한 수
return [max_num[s] for s in starts]
시간 초과가 엄청 빡빡한 문제입니다.
테케 10번에서 계속 막혔음....
이건 따로 기술이 필요한게 아니라
저 약수를 구하는 방법을 이번에 배워간다고 생각하시면 좋을 거 같습니다.
728x90
'프로그래머스 > Lv.3' 카테고리의 다른 글
부대복귀 - Python, BFS (0) | 2025.02.17 |
---|---|
고고학 최고의 발견 - Python, product (1) | 2025.02.10 |
N으로 표현 - Python, DP (0) | 2024.11.22 |
네트워크 - Python, DFS, BFS, Union_find (0) | 2024.11.21 |
여행 경로 - Python, dfs, 히에로홀드 경로(Eulerian Path) (1) | 2024.11.20 |