๋ฌธ์ ์ค๋ช
Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋ ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ ๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค.
Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋ ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค.
Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ฐ์ ๊ฒฉ์์ ์ brown์ 8 ์ด์ 5,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๋ 1 ์ด์ 2,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
์ ์ถ๋ ฅ ์
brown | yellow | return |
10 | 2 | [4, 3] |
8 | 1 | [3, 3] |
24 | 24 | [8, 6] |
ํ์ด ์ฝ๋
def get_candidate(tile):
max_val = tile+1
result = [] # [๊ฐ๋ก, ์ธ๋ก] ํ๋ณด๊ตฐ
for i in range(1, tile+1):
if i > max_val:
# ์ด๋ฏธ ํ๋ณด๊ตฐ์ ๋ค์ด๊ฐ ์์ด๋ผ๋ฉด ๋ ํ๋ณด๊ตฐ์ ๋ฃ์ ํ์ ์์ผ๋ฏ๋ก ๋ฆฌํด.
# ์๋ฅผ ๋ค์ด, (a,b)๊ฐ ํ๋ณด๊ตฐ์ ๋ค์ด์๋๋ฐ (b,a)๊ฐ ๋ค์ด์ค๋ ค๊ณ ํ๋ค๋ฉด ๋ค์ด์ฌ ํ์ ์์.
return result
if tile % i == 0:
# i๊ฐ tile ๊ฐ์ ์ฝ์๋ผ๋ฉด
pair = tile // i
result.append([i, pair])
max_val = pair
return result
def solution(brown, yellow):
tile = brown + yellow
answer = []
for can in get_candidate(tile):
a, b = can
# ํ์ผ ํ
๋๋ฆฌ ๊ตฌํ๋ ์.
# ๊ฐ๋ก * 2 + ์ธ๋ก * 2 ํ๋ฉด, ๊ฐ ๊ผญ์ง์ ์ด 2๋ฒ์ฉ ๊ณ์ฐ๋์์ผ๋ฏ๋ก 4๋ฅผ ๋นผ์ฃผ๋ฉด ๋จ.
tmp_brown = a*2 + b*2 - 4
if tmp_brown == brown:
# [a, b]์์ ๊ฐ๋ก๊ฐ ๋ ๊ธธ๋ค๊ณ ๋ฌธ์ ์์ ์ฃผ์ด์ก์ผ๋ฏ๋ก
# [b, a]๋ฅผ ๋ฆฌํดํ๋ ๊ฒ์ด ์ณ์.
answer.append(b)
answer.append(a)
break
return answer
์กฐ๊ธ ๋์๊ฐ ๋๋์ ์์ง๋ง, ์ ์์ ์ผ๋ก ํต๊ณผ๋๋ ์ฝ๋์ด๋ค.
๋ฌธ์ ์์ฒด๋ brute force(์์ ํ์)๊ณผ ์กฐ๊ธ์ ์ํ์ด๋ค.
์ฝ๋ ์ค๋ช ์ ํ์๋ฉด, get_candidate๋ ํ์ผ์ ์ด ๊ฐ์๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์, [๊ฐ๋ก, ์ธ๋ก]๊ฐ ๋ ์ ์๋ ํ๋ณด๊ตฐ์ ๋ฆฌํด ๋ฐ๋ ํจ์์ด๋ค.
์์ธํ ๋ด์ฉ์ ์ฃผ์์ผ๋ก ๊ธฐ์ฌํ์ผ๋ ์ฐธ๊ณ .
ํด๋น ํ๋ณด๊ตฐ์์ ํ ๋๋ฆฌ(brown)์ ๊ฐ์๋ฅผ ๋ง์กฑํ๋ ํ๋ณด๋ฅผ ์ฐพ์ ๋ฆฌํดํ๋ฉด ๋๋ค.
์ง์ฌ๊ฐํ์ ๋ณ์ ๊ธธ์ด์ ์ด ํฉ์ ๊ฐ๋ก * 2 + ์ธ๋ก * 2์ด๋ค.
์ฌ๊ธฐ์๋ ํ์ผ์ ๊ฐ์๋ฅผ ๋ฐ์ ธ์ผ ํ๋ฏ๋ก, ๊ฐ๋ก * 2 + ์ธ๋ก * 2๋ก ๊ณ์ฐํ๋ฉด ๊ผญ์ง์ 4๊ฐ๊ฐ ๋ ๋ฒ์ฉ ๊ณ์ฐ๋๋ค.
์ด๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด ๋๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ (level2, python) (0) | 2022.09.08 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ด ๋๋ง์๊ธฐ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค์ ํฐ ์ซ์ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํผ๋ณด๋์น ์ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์์ ํํ (level2, python) (0) | 2022.09.08 |