๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/42842
ํ์ด
# ํ๋ก๊ทธ๋๋จธ์ค 2๋จ๊ณ - ์์ ํ์ - ์นดํซ
def solution(brown, yellow):
answer = []
total = brown + yellow
for weight in range(total, 2, -1):
if total % weight == 0:
height = total // weight
if yellow == (weight-2) * (height-2):
return [weight, height]
์ผ๋จ ์ฒ์์ ๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ํ ๋ total ์ ์ฝ์๋ฅผ ๊ตฌํด์
์ค๊ฐ๋ฐฐ์ด์ ๊ฐ์ return ํ๋ฉด ๋ ์ค ์์์ง๋ง ์ฝ๋๋ฅผ ๊ตฌํํด๋ณธ ๊ฒฐ๊ณผ ๊ทธ๋ ์ง ์์๋ค.
์กฐ๊ธ ๋ ์๊ฐํด๋ณด์๋๋ฐ
์นดํซ์ ๋์ด : weight * height
์ธ๋ถ ์ฌ๊ฐํ์ ๊ฐฏ์(brown) = 2w + 2h - 4
๋ด๋ถ ์ฌ๊ฐํ์ ๊ฐฏ์(yellow) = (w-2) * (h-2)
์ฌ๊ธฐ์ ์ํ์ ์ผ๋ก ์ ๊ทผํ์ง ์์์ ์กฐ๊ธ ์๊ฐ์ ๋ง์ด ํ์๋๋ฐ
brown = 2w + 2h - 4 ์ธ ์ด์ ๊ฐ ๋ชจ์๋ฆฌ๋ฅผ ์ ์ธํ๊ณ brown์นดํซ์ด yellow์นดํซ๋ณด๋ค ์ ์๋๋ก ํ์นธ์ฉ ๋ ๋ง์ด ๋๋ฌธ์
์์ ๋ธ๋ผ์ด ๊ฐ๋ก ์นดํซ w, ์๋ ๋ธ๋ผ์ด ๊ฐ๋ก ์นดํซ w, ์์ ๋ธ๋ผ์ด ์ธ๋ก ์นดํซ h, ์๋ ๋ธ๋ผ์ด ๊ฐ๋ก ์นดํซ h
์ด๋ ๊ฒ ๋์ด ๋ชจ์๋ฆฌ๋ ๊ฒน์น๋ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ 4๊ฐ๋ฅผ ์ ์ธํ๋ฉด 2w + 2h -4 ๋ผ๋ ๊ฐ์ด ๋์ค๊ฒ ๋๋ค.
๋ํ yellow ์นดํซ์ brown ์นดํซ๋ณด๋ค ๊ฐ๋ก ์ธ๋ก๊ฐ 2์นธ์ฉ ์ ๊ธฐ ๋๋ฌธ์ -2๋ฅผ ํด์ค๋ค.
total(brown+yellow)์ด weight๋ก ๋๋์ด์ง๋ค๋ฉด height๊ฐ ๋ชซ์ด ๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ๊ทธ ์ซ์๋ค์ ๋น๊ตํด ๊ฐ๋ฉด์ (w-2) * (h-2) ๊ฐ yellow ๊ฐ์ด ๋๋ค๋ฉด ๊ทธ ๊ฐ์ ๋ฐํํด๋๋ก ํด์ค๋ค.