문제
- 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫이 있다.
- 갈색 격자의 수와 노란색 격자의 수가 주어질 때, 카펫의 가로와 세로 크기 구하기
- 8 <= 갈색 격자 수 <= 5,000
- 1 <= 노란색 격자 수 <= 2,000,000
풀이
- brown = (가로-2)*2 + (세로)*2
- yellow = (가로-2)*(세로-2)
def solution(brown, yellow):
r, c = 0, 0
for i in range(3, brown//2+1):
# (가로-2) 가 yellow 의 소인수이고
# (가로-2)*2 + 세로*2 = brown 인 경우
if yellow % (i-2) == 0 and brown == (i-2)*2 + (yellow//(i-2) + 2)*2:
r, c = i, yellow//(i-2) + 2
return [r, c]
References