๋ฌธ์
Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋ ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ ๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค.
Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋ ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค.
Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- ๊ฐ์ ๊ฒฉ์์ ์ brown์ 8 ์ด์ 5,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๋ 1 ์ด์ 2,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
๋์ ์ฝ๋
def solution(brown, yellow):
# a์ b์ ์กฐ๊ฑด (a = ๊ฐ๋ก, b = ์ธ๋ก)
# yellow = (a - 2) * (b - 2)
# total = a * b
total = brown + yellow
array = [] # ๊ฐ๋ก x ์ธ๋ก๊ฐ ๋ ์ ์๋ ๊ฒฝ์ฐ์ ์ ๋ชจ์
for i in range(total):
if i > 0:
if total % i == 0:
array.append(i)
if i * i == total:
array.append(i)
print(array)
# ๊ทธ์ค์์ ๋๊ฐ์ง ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด ๊ตฌํ๊ธฐ
for p in range(len(array)):
for t in range(p+1,len(array)):
if array[p] * array[t] == total:
if (array[p] - 2) * (array[t] - 2) == yellow:
answer = [array[p],array[t]]
answer.sort(reverse=True)
return answer
๋ถ์ > ์ฐ์ ์ ์ฒด ๊ฒฉ์์ ๊ฐ์๋ฅผ ํ ๋๋ก ๋์ฌ ์ ์๋ (๊ฐ๋ก x ์ธ๋ก) ์์ ๊ตฌํด array์ append ํ์๋ค. ๊ทธ ํ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ (๊ฐ๋ก x ์ธ๋ก) ์์ ๊ตฌํด ๋ฐํํด์ฃผ์๋ค.
ํจ์จ์ ์ธ ์ฝ๋
def solution(brown, yellow):
total = brown + yellow
for n in range(1, total+1):
if total%n != 0:
continue
m = total//n
if (n-2)*(m-2) == yellow:
return sorted([n, m], reverse = True)
๋ถ์ > ์ ์ฒด์ ์ธ ํ๋ฆ ์์ฒด๋ ๋ด๊ฐ ์ง ์ฝ๋์ ํฌ๊ฒ ๋ค๋ฅด์ง ์์๋ค. ๋ค๋ง ๋๋ ๋์ฌ ์ ์๋ ๋ชจ๋ (๊ฐ๋ก x ์ธ๋ก) ์์ ๋ชจ๋ ๊ตฌํด์ฃผ์๋๋ฐ, ์ด ์ฝ๋๋ continue๋ฅผ ์ฌ์ฉํด ๊ฐ์ฅ ๋ง์ง๋ง์ ์ ๋ ฅ๋ n๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก m์ ๊ตฌํด์ฃผ์๊ณ ์ด ๋ ๊ฐ์ด ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ฉด ๊ฐ์ ๋ฐํํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์ ๊ฐํ์๋ค. ์ด๋ ๊ฒ ๊ตณ์ด ํ์ํ์ง ์๋ ๋ถ๋ถ์ ๊ฐ๊ฒฐํ๊ฒ ์ฒ๋ฆฌํ๊ณ . ์ต๋ํ ํจ์จ์ ์ผ๋ก ์ฝ๋๋ฅผ ์ง๋ ๋ฒ์ ํ์ตํ ํ์์ฑ์ ๋๊ผ๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (0) | 2022.04.12 |
---|---|
[Programmers] ํ๋ ฌ์ ๋ง์ (0) | 2022.04.12 |
[Programmeres] ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2022.04.10 |
[Programmers] ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (0) | 2022.04.09 |
[Programmers] ํฐ ์ ๋ง๋ค๊ธฐ (0) | 2022.04.09 |