๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Algorithm/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

2022.05.16 ใ€ŒLv.2 ์นดํŽซใ€

by GroovyArea 2022. 5. 16.
์˜ค๋Š˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์™„์ „ ํƒ์ƒ‰ ๋ฌธ์ œ ์ค‘ ๋ ˆ๋ฒจ 2์˜ ์นดํŽซ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค.
ํ•ญ์ƒ ๋А๋ผ๋Š” ๊ฑฐ์ง€๋งŒ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์ •๋ฆฌ ์ข€ ํ•ด์•ผ๊ฒ ๋‹ค. 
ํ’€ ์ˆœ ์žˆ๋Š” ๋ฌธ์ œ๋ผ๋„ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์ด์šฉํ•ด ํ‘ธ๋Š” ๊ฒƒ๊ณผ ๋‚ด ๋ฐฉ์‹๋Œ€๋กœ ํ‘ธ๋Š” ๊ฒƒ์€ ๋‚˜์ค‘์— ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์„ ๊ฒƒ์ด ๋ถ„๋ช…ํ•˜๋ฏ€๋กœ ์˜ค๋Š˜์ด๋‚˜ ์ด๋ฒˆ ์ฃผ ์•ˆ์— ๋ฌด์กฐ๊ฑด ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•˜์ž!

 

๋ฌธ์ œ ์„ค๋ช…

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

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

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

 

์ œํ•œ์‚ฌํ•ญ

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

 

ํ’€์ด ๊ณผ์ •

(๊ฐ€๋กœ ๊ฐœ์ˆ˜ - 2) x (์„ธ๋กœ ๊ฐœ์ˆ˜ -2) = ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž 

๊ฐ€๋กœ์˜ ๊ธธ์ด >= ์„ธ๋กœ์˜ ๊ธธ์ด

 

์ด๊ฒƒ์ด ํ•ต์‹ฌ์ด๋ฏ€๋กœ ์ „์ฒด ๊ฒฉ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์•„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ๊ฒƒ์ด๋‹ค.

์ „์ฒด ๊ฒฉ์ž์˜ ๊ฐœ์ˆ˜๋Š” brown + yellow 

์œ„์˜ ์กฐ๊ฑด๋“ค์„ ์ œ์–ด๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ํ•ด๊ฒฐ๋  ๊ฒƒ์ด๋‹ค.

 

public class Carpet {
    public int[] solution(int brown, int yellow) {
        int[] answer = new int[2];

        int totalTiles = brown + yellow;

        for (int i = 1; i <= totalTiles; i++) {
            int width = i;
            int height = totalTiles / i;

            if (width < height) {
                continue;
            }

            if ((width - 2) * (height - 2) == yellow) {
                answer[0] = width;
                answer[1] = height;
            }
        }

        return answer;
    }
}

๊ฐ€๋กœ ๊ฐœ์ˆ˜์™€ ์„ธ๋กœ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ ,

์กฐ๊ฑด๋ฌธ์œผ๋กœ continue๋ฅผ ํ†ตํ•ด ๊ทœ์น™์— ์œ„๋ฐ˜ํ•œ ๊ฒฝ์šฐ๋ฅผ ๋‚ ๋ ธ๊ณ ,

๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž ์ˆ˜์™€ ๊ฐ™์•„์งˆ ๋•Œ์˜ ์กฐ๊ฑด์ด ๊ฐ€๋กœ ์„ธ๋กœ ๊ธธ์ด์ด๋ฏ€๋กœ ์ •๋‹ต์„ ๋ฐ˜ํ™˜ํ–ˆ๋‹ค.

 

๊ฒฐ๋ก 

Lv2 ๋ฌธ์ œ์น˜๊ณ  ์‰ฌ์šด ํŽธ์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋” ๋‹ค์–‘ํ•˜๊ฒŒ, ํšจ์œจ์ ์ด๊ฒŒ ํ’€์–ด๋ณด๋ ค๊ณ  ํ•ญ์ƒ ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค!

๋ฐ˜์‘ํ˜•