1) ๋ฌธ์ ์ค๋ช
- Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋ ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ ๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค.
- Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋ ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค.
- Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
2) ์ ํ ์ฌํญ
- ๊ฐ์ ๊ฒฉ์์ ์ brown์ 8 ์ด์ 5,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๋ 1 ์ด์ 2,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
3) ์ ์ถ๋ ฅ ์์
brown yellow return
10 2 [4, 3]
8 1 [3, 3]
24 24 [8, 6]
4) ์ ์ถ๋ ฅ ์์ ์ค๋ช
- ์์
5) ํ์ด
def solution(brown, yellow):
# ์ด ๋ธ๋ก ์
allBlock = brown + yellow
# ์ด๊ธฐ ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด
width = 3
height = 1
while True:
# ์ด ๋ธ๋ก์ / ๊ฐ๋ก๊ธธ์ด --> ๋ชซ, ๋๋จธ์ง
height = allBlock // width
remainder = allBlock % width
# ๋๋จธ์ง 0์ด๊ณ ๊ฐ๋ก ๊ธธ์ด >= ์ธ๋ก ๊ธธ์ด ์ด๊ณ
# ์ค์ ๋ธ๋ก (๊ฐ๋ก -2 * ์ธ๋ก - 2) == ๋
ธ๋ ๋ธ๋ก ์ ์ด๋ฉด ํด๋น ๊ฐ๋ก,์ธ๋ก ๊ธธ์ด ๊ฐ ๋ฆฌํด
if remainder == 0 and width >= height and yellow == (width-2) * (height-2):
return [width, height]
# ๊ทธ๊ฒ ์๋๋ฉด ๊ฐ๋ก ๊ธธ์ด +1
width += 1
[Reference]
๋ฐ์ํ
'๐ฏ Coding Test > ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค (Lv 2) - ๊ตฌ๋ช ๋ณดํธ (1) | 2023.08.17 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค (Lv 2) - ์์ด ๋๋ง์๊ธฐ (1) | 2023.08.17 |
ํ๋ก๊ทธ๋๋จธ์ค (Lv 2) - ๊ธฐ๋ฅ๊ฐ๋ฐ (1) | 2023.08.17 |
ํ๋ก๊ทธ๋๋จธ์ค (Lv 2) - ํ๋ก์ธ์ค (1) | 2023.08.16 |
ํ๋ก๊ทธ๋๋จธ์ค (Lv 0) - ์น์์ด (1) (1) | 2023.08.16 |