[프로그래머스 | Python] 카펫

게으른 완벽주의자·2023년 1월 24일
0

프로그래머스

목록 보기
5/83
post-custom-banner

프로그래머스_카펫

문제에서 카펫의 가로길이>=세로길이라고 나와있으니 yellow의 약수와 그 때의 몫을 큰 수 순서대로 넣어준다
가로길이=약수, 세로길이=몫이 되도록 yellow를 펼쳐놓고 그 가장자리에 (row+col)x2+4개수만큼 brown이 놓여져있으면, [col+2, row+2] 값이 카펫의 크기가 된다

from math import sqrt

#약수 구하는 함수
def divide(n):
    result = []
    for i in range(1, int(sqrt(n))+1):
        if n%i==0:
            result.append((i,n//i))
    result.sort(reverse = True)
    return result

def solution(brown, yellow):
    answer = []
    result = divide(yellow)
    for row, col in result:
            if (row+col)*2+4 == brown:
                answer = [col+2, row+2]
                break
    return answer
profile
데이터를 공부하고 있습니다
post-custom-banner

0개의 댓글