반응형
def solution(brown, yellow):
ab = brown + yellow
for b in range(1, ab+1):
if (ab / b) % 1 == 0:
a = ab/ b
if a >= b:
if a*2 + b*2 == brown + 4:
return [a,b]
방정식을 활용해야 한다.
전제 조건을 살펴보면 카펫의 가로 길이는 세로 길이와 같거나 길다. 즉, 가로 ≥ 세로가 된다.
가로를 a 세로를 b라고 했을 때 갈색과 노란색 칸 수를 구해보면 수식은 2a - 2b - 4 = Brown이 된다. 가로 * 세로를 했을 때 각 겹치는 모서리 부분을 빼줘야 하기 때문에 -4를 해준다. 즉, 저 수식에서 a 값만 구하면 b값을 알 수 있게 된다.
for 문으로 전체 네모칸 만큼 반복시킨다.
if 문을 통해 a 길이를 구하기 위해 ab를 b로 나눠 떨어지는 것만 계산하게 한다.
아래에서 수식을 통해 값을 구하면 된다.
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] : H-Index Python,파이썬 풀이 (0) | 2022.04.18 |
---|---|
[프로그래머스] : 약수의 합 파이썬 풀이 (0) | 2022.02.11 |
[프로그래머스] : 자연수 뒤집어 배열로 만들기 파이썬 풀이 (0) | 2022.02.09 |
[프로그래머스] : 정수 내림차순으로 배치하기 파이썬 풀이 (0) | 2022.02.07 |
[프로그래머스] : 정수 제곱근 판별 파이썬 풀이 (0) | 2022.02.04 |
댓글