title: "[프로그래머스] 카펫 Python 파이썬 해설 (Level 2) - 이도훈"
cleanUrl: "programmers/42842"
description: "프로그래머스 Level 2 문제 [카펫]의 풀이를 정리합니다."
def divisors(n):
return [i for i in range(1, n+1) if n % i == 0]
def solution(brown, yellow):
# 가로를 x, 세로를 y라 하면
# (x - 2) * (y - 2) = yellow
# 2 * (x + y) - 4 = brown
# (x + y) = (brown + 4) // 2
# xy - 2 * (x + y) = yellow - 4
xplusy = (brown + 4) // 2
xy = yellow - 4 + 2 * xplusy
for x in divisors(xy):
y = xy // x
if x + y == xplusy:
return max(x, y), min(x, y)
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges