
Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋ ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ ๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค.

Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋ ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค.
Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๊ฐ์ ๊ฒฉ์์ ์ brown์ 8 ์ด์ 5,000 ์ดํ์ธ ์์ฐ์์
๋๋ค.
๋
ธ๋์ ๊ฒฉ์์ ์ yellow๋ 1 ์ด์ 2,000,000 ์ดํ์ธ ์์ฐ์์
๋๋ค.
์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
| brown | yellow | return |
|---|---|---|
| 10 | 2 | [4, 3] |
| 8 | 1 | [3, 3] |
| 24 | 24 | [8, 6] |
function solution(brown, yellow) {
const total = brown + yellow;
for (let height = 3; height <= total; height++) {
if (total % height === 0) {
const width = total / height;
if(width < height) {
continue;
}
if ((width - 2) * (height - 2) === yellow) {
return [width, height];
}
}
}
}
function solution(brown, yellow) {
const total = brown + yellow;
for (let height = 3; height <= Math.sqrt(total); height++) {
if (total % height === 0) {
const width = total / height;
if ((width - 2) * (height - 2) === yellow) {
return [width, height];
}
}
}
}
์ด๋ฒ์๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ๋ค. ์ด๋ป๊ฒ ํ์ด์ผํ ์ง ๋ง์ ๊ณ ๋ฏผ์ ํ ๋ฌธ์ ์๋ค. ์ฒ์์๋ while๋ฌธ์ผ๋ก ์๋ํ์ง๋ง ๊ณ์ ์คํจํ๊ณ , ๊ท์น์ ๋ค์ ์ฐพ๊ธฐ ์์ํ๋ค. ๋ค๋ฅธ ๋ธ๋ก๊ทธ์์ (width - 2) * (height - 2) === yellow๋ผ๋ ๊ณต์์ ๋ณธ ํ์์ผ ์ ๋ต์ ๋ง์ถ ์ ์์๋ค. ํผ์ ํผ ๊ฒ ๊ฐ์ง ์์ ์์ฝ์ง๋ง, ๋ค์ ๋ฌธ์ ๋ ์กฐ๊ธ ๋ ์๊ฐํด์ ํ์ด๋ด์ผ๊ฒ ๋ค.
๋ฆฌํฉํ ๋ง์ ํตํด ์ฝ๋๋ฅผ ์ค์๋๋ฐ, ์คํ๋ ค ๋ฆฌํฉํ ๋ง ์ ์ ๊ฒฐ๊ณผ๊ฐ ๋ ๋นจ๋๋ค. ์ฝ๋๊ฐ ์งง๋ค๊ณ ๋ฌด์กฐ๊ฑด ๋น ๋ฅธ ๊ฒ์ ์๋์ง๋ง, ์ด๋ฒ์๋ ์กฐ๊ฑด์ ๋ช ๊ฐ ๋บ๋๋ฐ๋ ๋ ๋นจ๋๋ ์ด์ ๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ด ๋ถ๋ถ์ ๋ํด ๋ ์์๋ด์ผ๊ฒ ๋ค.