๐Ÿ˜บํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - LV.2 ์นดํŽซ [JS]

laonยท2024๋…„ 6์›” 18์ผ
post-thumbnail

๋ฌธ์ œ ์„ค๋ช…

Leo๋Š” ์นดํŽซ์„ ์‚ฌ๋Ÿฌ ๊ฐ”๋‹ค๊ฐ€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ค‘์•™์—๋Š” ๋…ธ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๊ณ  ํ…Œ๋‘๋ฆฌ 1์ค„์€ ๊ฐˆ์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๋Š” ๊ฒฉ์ž ๋ชจ์–‘ ์นดํŽซ์„ ๋ดค์Šต๋‹ˆ๋‹ค.

Leo๋Š” ์ง‘์œผ๋กœ ๋Œ์•„์™€์„œ ์•„๊นŒ ๋ณธ ์นดํŽซ์˜ ๋…ธ๋ž€์ƒ‰๊ณผ ๊ฐˆ์ƒ‰์œผ๋กœ ์ƒ‰์น ๋œ ๊ฒฉ์ž์˜ ๊ฐœ์ˆ˜๋Š” ๊ธฐ์–ตํ–ˆ์ง€๋งŒ, ์ „์ฒด ์นดํŽซ์˜ ํฌ๊ธฐ๋Š” ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

Leo๊ฐ€ ๋ณธ ์นดํŽซ์—์„œ ๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown, ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์นดํŽซ์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown์€ 8 ์ด์ƒ 5,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๋Š” 1 ์ด์ƒ 2,000,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
์นดํŽซ์˜ ๊ฐ€๋กœ ๊ธธ์ด๋Š” ์„ธ๋กœ ๊ธธ์ด์™€ ๊ฐ™๊ฑฐ๋‚˜, ์„ธ๋กœ ๊ธธ์ด๋ณด๋‹ค ๊น๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

brownyellowreturn
102[4, 3]
81[3, 3]
2424[8, 6]

ํ’€์ด

  1. brown๊ณผ yellow์˜ ํ•ฉ์„ total๋กœ ์„ค์ •.
  2. height๋Š” 3๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
  3. (width - 2) * (height - 2) === yellow.
  4. ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด [width, height]๋ฅผ ๋ฐ˜ํ™˜.

์ฒซ ํ’€์ด

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๋ผ๋Š” ๊ณต์‹์„ ๋ณธ ํ›„์—์•ผ ์ •๋‹ต์„ ๋งž์ถœ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ˜ผ์ž ํ‘ผ ๊ฒƒ ๊ฐ™์ง€ ์•Š์•„ ์•„์‰ฝ์ง€๋งŒ, ๋‹ค์Œ ๋ฌธ์ œ๋Š” ์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•ด์„œ ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค.

๋ฆฌํŒฉํ† ๋ง์„ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์ค„์˜€๋Š”๋ฐ, ์˜คํžˆ๋ ค ๋ฆฌํŒฉํ† ๋ง ์ „์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋” ๋นจ๋ž๋‹ค. ์ฝ”๋“œ๊ฐ€ ์งง๋‹ค๊ณ  ๋ฌด์กฐ๊ฑด ๋น ๋ฅธ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ์ด๋ฒˆ์—๋Š” ์กฐ๊ฑด์„ ๋ช‡ ๊ฐœ ๋บ๋Š”๋ฐ๋„ ๋” ๋นจ๋ž๋˜ ์ด์œ ๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๋” ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค.

profile
laonlaon

0๊ฐœ์˜ ๋Œ“๊ธ€