๋ฌธ์ : https://school.programmers.co.kr/learn/courses/30/lessons/42842
์นดํ ๊ณ ๋ฆฌ: ์์ ํ์
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ๊ณ ๋์ Kit, https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
๋ฌธ์ ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown๊ณผ ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋ฉด, ์นดํซ์ ๊ฐ๋ก ์ธ๋ก ํฌ๊ธฐ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
์นดํซ์ ์ด ๊ฒฉ์์ ์๋ brown + yellow ์ผ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ yellow = 8์ด๋ผ๋ฉด, yellow ๊ฒฉ์์ ์๊ฐ ๋ฐฐ์น๋ ์ ์๋ ๊ฒฝ์ฐ์ ์๋
๊ฐ๋ก 1 x ์ธ๋ก 8
โ โ โ โ โ โ โ โ
๊ฐ๋ก 2 x ์ธ๋ก 4
โ โ โ โ
โ โ โ โ
์ด๋ ๊ฒ 2๊ฐ์ง ๊ฒฝ์ฐ์ด๊ณ , ๊ฐ ๊ฒฝ์ฐ์ ์๋ 8์ ์ฝ์๋ค์ ๊ณฑ์ ํํ์ด๋ค.
๊ฐ ๊ฒฝ์ฐ์ผ ๋ brown ๊ฒฉ์์ ์๋ฅผ ํฌํจํ ์ด ๊ฒฉ์์ ์๋
(1+2) x (8+2) = 30
โก โก โก โก โก โก โก โก โก โก
โก โ โ โ โ โ โ โ โ โก
โก โก โก โก โก โก โก โก โก โก
(2+2) x (4+2) = 24 ์ผ ๊ฒ์ด๋ค.
โก โก โก โก โก โก
โก โ โ โ โ โก
โก โ โ โ โ โก
โก โก โก โก โก โก
๋ฐ๋ผ์, brown๊ณผ yellow ๊ฐ ์ฃผ์ด์ง๋ฉด ์ฐ์ brown๊ณผ yellow๋ฅผ ํฉํ total์ ๊ณ์ฐํด๋๊ณ ,
yellow๊ฐ ๋ฐฐ์น๋ ์ ์๋ ๊ฒฝ์ฐ์ ์(yellow์ ์ฝ์๋ค์ ๊ณฑ = yellow๊ฐ ๋๋ ์ํฉ)์ ํ๋์ฉ ํด๋ณด๋ฉด์, total๊ณผ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ๋์ ๊ฐ๋ก x ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ฐํํ๋ฉด ๋๋ค.
function solution(brown, yellow) {
const total = brown + yellow;
for (let i = 1; i <= yellow; i++) {
if (yellow % i === 0) {
// i๊ฐ yellow์ ์ฝ์๋ผ๋ฉด
const j = yellow / i;
if ((i + 2) * (j + 2) === total) {
return [j+2, i+2];
}
}
}
}