문제 설명 및 제한사항
아이디어 및 해결 방법
코드
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)
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges