1. ๋ฌธ์ œ์„ค๋ช…

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

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-04-11 แ„‹แ…ฉแ„’แ…ฎ 10.22.47.png

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

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

์ œํ•œ์‚ฌํ•ญ

์ž…์ถœ๋ ฅ ์˜ˆ

brown yellow return
10 2 [4, 3]
8 1 [3, 3]
24 24 [8, 6]

2. ๋ฌธ์ œ๋ถ„์„(์‚ฌ์ „)

3. JAVA์ฝ”๋“œ

public class Solution {

    // ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LEVEL2 ์นดํŽซ
    // ๋ฌธ์ œ URL : <https://programmers.co.kr/learn/courses/30/lessons/42842>

    public int[] solution(int brown, int yellow) {
        int[] answer = new int[2];
        // ํ•ด๋‹น ์กฐ๊ฑด์˜ ์‚ฌ๊ฐํ˜• ๋„“์ด
        int area = brown + yellow;
        // ๊ฐ€๋กœ ์ตœ์†Œ ๊ธธ์ด -- ๊ฐ€๋กœ ๊ธธ์ด๋Š” ์„ธ๋กœ ๊ธธ์ด์™€ ๊ฐ™๊ฑฐ๋‚˜, ์„ธ๋กœ ๊ธธ์ด๋ณด๋‹ค ๊น๋‹ˆ๋‹ค.
        int minWidth = (int) Math.sqrt(area);
        // ์•ฝ์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ๊ฐ€๋กœ๊ธธ์ด ๊ณ„์‚ฐ๊ฐ€๋Šฅ
        // ๊ฐ€๋กœ์˜ ์ตœ๋Œ€๊ฐ’ - ๋„“์ด / 3 --> ์ œํ•œ์กฐ๊ฑด์—์„œ ์„ธ๋กœ ์ตœ์†Œ๊ฐ’์ด 3์ด๊ธฐ ๋•Œ๋ฌธ์—
        for (int i = 3; i <= area / 3; i++) {
            // i -> ์•ฝ์ˆ˜์ด๊ฑฐ๋‚˜ ๋ฃจํŠธ๊ฐ’๋ณด๋‹ค ํฌ๋ฉด ์„ธ๋กœ๊ธธ์ด ๊ณ„์‚ฐ ๋ฐ yellow ๊ฒ€์ฆ
            if (area % i == 0 && i >= minWidth) {
                int height = area / i;
                // ์„ธ๋กœ๊ฐ€ ๊ฐ€๋กœ๋ณด๋‹ค ํฌ๋ฉด SKIP
                if (height > i) continue;
                // ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž ๊ฒ€์ฆ์„ ์œ„ํ•˜์—ฌ ๊ณ„์‚ฐ
                int chkVal = (i - 2) * (height - 2);
                if (chkVal == yellow) {
                    // ๊ฐ€๋กœ, ์„ธ๋กœ ์„ค์ • ๋ฐ for๋ฌธ ์ข…๋ฃŒ
                    answer[0] = i;
                    answer[1] = height;
                    break;
                }
            }
        }

        return answer;
    }

}

4. ์ฝ”๋“œํ•ด์„

<aside> <img src="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" alt="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" width="40px" /> ์ฐธ์กฐ Github Code

</aside>