PROGRAMMERS 카펫

LONGNEW·2023년 7월 24일
0

BOJ

목록 보기
331/333

https://school.programmers.co.kr/learn/courses/30/lessons/42842

input :

  • brown yellow

output :

  • 카펫의 가로, 세로 크기를 배열에 담아 반환하시오.

조건 :

  • 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.

idea

주의

  • 가능한 격자모양이 여러 개 이기에 요구한 brown 개수와 동일한지 확인이 필요하다.
def solution(brown, yellow):
    # temp는 row가 가능한 범위의 가장 큰 값
    temp = int(yellow ** (1/2))
    for row in range(temp, 0, -1):
        if yellow % row != 0:
            continue
        
        col = yellow // row
        need_brown = row * 2 + col * 2 + 4
        # print(f"{[col + 2, row + 2]}, need_brown={need_brown}")
        if brown == need_brown:
            return [col + 2, row + 2]

0개의 댓글