[프로그래머스] 카펫

단간단간·2024년 4월 12일
0

알고리즘 문제

목록 보기
59/106

문제 링크:

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

회고:

  • 수학적으로 접근한다.
  • x:가로, y:세로 길이라고 했을 때, 아래 조건을 만족한다.
    - x + y = (brown + 4) / 2
    - x * y = brown + yellow

python

def solution(brown: int, yellow: int) -> list:
    # 가로:x, 세로:y
    x_y_multiplication = brown + yellow
    x_y_addition = (brown + 4) / 2

    for x in range(x_y_multiplication - 2, 0, -1):
        if x_y_multiplication % x == 0:
            y = x_y_multiplication / x

            if x + y == x_y_addition:
                return [int(x), int(y)]


if __name__ == "__main__":
    result = solution(10, 2)
    print(result)
[4, 3]
profile
simple is best

0개의 댓글