import math
def solution(brown, yellow):
total = brown + yellow
m, n = [], []
for i in range(1, math.floor(math.sqrt(total)) + 1):
if divmod(total, i)[1] == 0:
n.append(i)
m.append(int(total/i))
for i in range(len(n)):
if 2*(m[i] + n[i]) - 4 == brown:
return(m[i], n[i])
โท ๊ฐ์ ๊ฒฉ์์ ์(Brown), ๋ ธ๋์ ๊ฒฉ์์ ์(Yellow), ๊ฐ๋ก์ ๊ธธ์ด(m), ์ธ๋ก์ ๊ธธ์ด(n)์ ๋ํ ๊ด๊ณ์์ ๋ค์๊ณผ ๊ฐ๋ค.
(1) Brown + Yellow = m × n
(2) Brown = 2 × (m + n) - 4
โท (1)์ ๋ง์กฑํ๋ ์ฃผ์ด์ง ๊ฐ์ ๊ฒฉ์์ ์์ ๋ ธ๋์ ๊ฒฉ์์ ์๋ฅผ ๋ง์กฑํ๋ ๊ฐ๋ก์ ์ธ๋ก์ ๊ธธ์ด๋ฅผ ์ฐพ๋๋ค.
โท (1)์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ ์ค (2)๋ฅผ ๋ง์กฑํ๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด ์ด๋ฅผ ๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ๋ค.
โถ []๋ list๋ฅผ ํ ๋นํ๋ค.
โถ divmod ํจ์์ ์ฒซ ๋ฒ์งธ ์ธ์๋ ๋๋๋ ๊ฐ, ๋ ๋ฒ์งธ ์ธ์๋ ๋๋ ๊ฐ์ ์๋ฏธํ๋ค. ๊ฒฐ๊ณผ๋ ๋ชซ๊ณผ ๋๋จธ์ง๊ฐ ํฌํจ๋ ํํ๋ก ์ถ๋ ฅ๋๋ค.
โถmath ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ๋ฆผ์ด ๊ฐ๋ฅํ ceil ํจ์์ ๋ด๋ฆผ์ด ๊ฐ๋ฅํ floor ํจ์๋ฅผ ํฌํจํ๊ณ ์๋ค.
'Programming > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Level 2] H-Index (Python) (0) | 2020.10.05 |
---|---|
[Level 2] ์์ฅ (Python) (0) | 2020.09.30 |
[Level 2] ๊ดํธ ๋ณํ (Python) (0) | 2020.09.30 |
[Level 2] ์ผ๊ฐ ๋ฌํฝ์ด (Python) (0) | 2020.09.29 |
[Level 2] ๋ค์ ํฐ ์ซ์ (Python) (0) | 2020.09.24 |