[프로그래머스] 숫자 블록

최동혁·2023년 5월 4일
2

1일 1코테 이상

목록 보기
6/10

풀이

키워드
1. 블록은 10000000을 넘어가지 않는다.
2. 1을 제외한 가장 작은 약수로 나눈 몫이 답인데, 10000000을 넘어가면 안된다.
위의 2가지 키워드를 가지고 풀면 쉽다.
만약 가장 작은 약수로 나눈 몫이 10000000을 넘어간다면, 가장 작은 약수가 답이 될 수도 있기 때문에 수를 따로 저장해놔야한다.

코드

def solution(begin, end):
    answer = []
    
    for i in range(begin, end + 1):
        min_num = 1
        max_num = 1
        for j in range(2, int(i ** 0.5) + 1):
            if i % j == 0:
                if i // j <= 10000000:
                    min_num = j
                    answer.append(i // j)
                    break
                else:
                    max_num = j
        if i == 1:
            answer.append(0)
        elif min_num == 1:
            answer.append(max_num)
    return answer
profile
항상 성장하는 개발자 최동혁입니다.

1개의 댓글

comment-user-thumbnail
2023년 5월 4일

0이 너무 많아 십만인지 백만인지 헷갈리네요. 직관적으로 표기 부탁드립니다.

답글 달기