본문 바로가기
프로그래머스/Lv.3

억억단을 외우자 - Python

by 아찌방 2025. 2. 21.

 

 

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