<์์ ํ์> ํ๋ก๊ทธ๋๋จธ์ค ์นดํซ
https://school.programmers.co.kr/learn/courses/30/lessons/42842
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
def solution(brown, yellow):
stack = []
answer = []
for i in range(1,brown+yellow+1):
if (brown+yellow) % i == 0:
stack.append(i)
if len(stack) % 2 == 0:
answer.append(stack[len(stack)//2])
answer.append(stack[len(stack)//2-1])
else :
answer.append(stack[len(stack)//2])
answer.append(stack[len(stack)//2])
return answer
๋ด๊ฐ ์๊ฐํ๋ ํ์ด์ด๋ค.
์ฐ์ brown+yellow ๊ฐ์ ์ฝ์๋ค์ ๊ตฌํด์ฃผ๊ณ , ๊ทธ ์ ๋ฐ index๋ฅผ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ค๊ณ ์๊ฐํ๋๋ฐ 76.9์ ๋ฐ์ ๋ฐ์ง ๋ชปํ์๋ค.
brown+yellow ๊ฐ์ ์ฝ์๋ค์ ๋ค ๊ตฌํด์ฃผ๋ค๋ณด๋ ๊ฐ์ด ํด ๋, ์๊ฐ ์ด๊ณผ๊ฐ ์ผ์ด๋ ๊ฒ ๊ฐ๋ค.
ํด๊ฒฐํ์ง ๋ชปํด ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ์ฐธ๊ณ ํ์๋๋ฐ,
๊ฐ์-4) // 2 = ๋ ธ๋์์ col+row๊ฐ ๋์ค๊ฒ ๋๋ค.
์ด๋ป๊ฒ ์ด๋ฐ ์์ ์๊ฐํด๋ด๋ ๊ฒ์ผ๊น? ์ง์ง ๋๋ ๋ถ์กฑํ๊ณ ๋ถ์กฑํ๊ตฌ๋ ๊นจ๋ฌ์๋ค.
์ด๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋ค์ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์๋ค.
def solution(brown, yellow):
ab = brown + yellow
for a in range(ab, 2, -1): #ab๋ถํฐ 2๊น์ง ๋ฐ๋ณต
b = ab // a
if ab % a == 0: #์ฆ, ab๊ฐ a๋ก ๋๋ ์ง๋ค๋ฉด? ๊ทธ๋ผ b๊ฐ ๋์ฌ ์ ์์ผ๋๊น
if yellow == (a-2)*(b-2): ##yellow ๊ฐ์ ์กฐ๊ฑด ์ถฉ์กฑํ๋์ง
return [a,b]