๐ญ ๋ฌธ์ ์ดํด
๊ฐ์ ํ์ผ์ ๊ฐ์์ ๋ ธ๋์ ํ์ผ์ ๊ฐ์๊ฐ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋, ์ ์ฒด ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
์์์ผ๋ก ์ ๋ฆฌํด๋ณธ๋ค๋ฉด,
1. ๊ฐ๋ก๋ฅผ ํ ๋๋ฆฌ๋ฅผ ํฌํจํด์ \(x+2\) ๋ก ํํํ๊ณ , ์ธ๋ก๋ ํ ๋๋ฆฌ๋ฅผ ํฌํจํ์ฌ \(y+2\) ๋ก ํํํ๋ค.
2. ์ ์์์ ๊ธฐ์ค์ผ๋ก ์ ์ฒด ์นธ ์๋ \((x+2)(y+2) = brown + yellow\) ๋ก ํํํ ์ ์๋ค.
3. ๋ ธ๋ ๋ถ๋ถ์ \(xy = yellow\) ๋ก ํํํ ์ ์๋ค.
4. ์ ์ฒด ์นธ ์๋ฅผ ๋ํ๋ด๋ ์์์ ์ ๊ฐํ๋ฉด \(xy+2x+2y+4=brown+xy\) ๊ฐ ๋๊ณ , ์ด๋ฅผ ์ ๋ฆฌํ๋ฉด \(x+y = \frac{brown-4}{2}\) ๋ผ๋ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝ๋๋ค.
์ฆ,
\(y = \frac{brown-4}{2}-x\) ๊ด๊ณ๋ฅผ ๋ง์กฑํ๋ฉฐ x์ ๋ณํ์ ๋ฐ๋ฅธ y ๊ฐ์ ๊ตฌํ๋ค๊ฐ
\(xy = yellow\) ์กฐ๊ฑด์ด ๋ง์กฑํ๋ ๋ถ๋ถ์ ์ฐพ์๋ด๋ฉด ํด๋ต์ด ๋๋ค.
์ด ๊ณผ์ ์ ์ฝ๋๋ก ๊ตฌํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๊ตฌํ ์ธ์ด: Python
def solution(brown, yellow):
answer = []
x = 0
y = brown
while True:
x += 1
y = (brown - 4) // 2 - x
if x * y == yellow:
answer.append(y+2)
answer.append(x+2)
break
return answer
'Problem_Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ / ์์ ํ์(Brute-force Search) (0) | 2021.03.17 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ / ํ(Queue) (0) | 2021.03.12 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์ / ์ ๋ ฌ (0) | 2021.03.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋๋์ง / ๋์ ๊ณํ๋ฒ(Dynamic-Programming) (0) | 2021.03.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฑ๊ตฃ๊ธธ / ๋์ ๊ณํ๋ฒ(Dynamic-Programming) (0) | 2021.03.11 |