์ค๋์ ํ๋ก๊ทธ๋๋จธ์ค์์ ์์ ํ์ ๋ฌธ์ ์ค ๋ ๋ฒจ 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 ๋ฌธ์ ์น๊ณ ์ฌ์ด ํธ์ด์๋ค. ํ์ง๋ง ๋ ๋ค์ํ๊ฒ, ํจ์จ์ ์ด๊ฒ ํ์ด๋ณด๋ ค๊ณ ํญ์ ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค!
'๐ Algorithm > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2022.05.24 ใLv.3 ์ ๊ตญ์ฌ์ฌใ (0) | 2022.05.24 |
---|---|
2022.05.18 ใLv.2 Heap ๋ ๋งต๊ฒใ (0) | 2022.05.18 |
2022.05.17 ใLv.2 ํ๋ฆฐํฐใ (0) | 2022.05.17 |
2022.05.12 ใLV2 ์์ ์ฐพ๊ธฐใ (0) | 2022.05.12 |
2022.05.09 ใํด์ Lv.2ใ (0) | 2022.05.09 |