N๊ฐ์ ์ต์๊ณต๋ฐฐ์
https://programmers.co.kr/learn/courses/30/lessons/12953
์ฝ๋ฉํ ์คํธ ์ฐ์ต - N๊ฐ์ ์ต์๊ณต๋ฐฐ์
๋ ์์ ์ต์๊ณต๋ฐฐ์(Least Common Multiple)๋ ์ ๋ ฅ๋ ๋ ์์ ๋ฐฐ์ ์ค ๊ณตํต์ด ๋๋ ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด 2์ 7์ ์ต์๊ณต๋ฐฐ์๋ 14๊ฐ ๋ฉ๋๋ค. ์ ์๋ฅผ ํ์ฅํด์, n๊ฐ์ ์์ ์ต์๊ณต๋ฐฐ๏ฟฝ๏ฟฝ
programmers.co.kr
๋ฌธ์ ์ค๋ช
๋ ์์ ์ต์๊ณต๋ฐฐ์(Least Common Multiple)๋ ์ ๋ ฅ๋ ๋ ์์ ๋ฐฐ์ ์ค ๊ณตํต์ด ๋๋ ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด 2์ 7์ ์ต์๊ณต๋ฐฐ์๋ 14๊ฐ ๋ฉ๋๋ค. ์ ์๋ฅผ ํ์ฅํด์, n๊ฐ์ ์์ ์ต์๊ณต๋ฐฐ์๋ n ๊ฐ์ ์๋ค์ ๋ฐฐ์ ์ค ๊ณตํต์ด ๋๋ ๊ฐ์ฅ ์์ ์ซ์๊ฐ ๋ฉ๋๋ค.
n๊ฐ์ ์ซ์๋ฅผ ๋ด์ ๋ฐฐ์ด arr์ด ์ ๋ ฅ๋์์ ๋ ์ด ์๋ค์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์.
ํ์ด
์ง์๋ฅผ ์ด์ฉํด์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ์ต๋๋ค.
def solution(li):
y = [2,3,5,7]
root = {'2':0, '3':0, '5':0, '7':0}
answer = 1
for i in range(len(li)):
j = 0
r = li[i]
mt = {v:0 for v in root.keys()}
while 1:
if r % y[j] == 0:
r = r / y[j]
mt[str(y[j])] += 1
j = -1
if j == len(y)-1:
break
j += 1
if r != 1 : # 2,3,5,7 ์ ์ ์ธํ ์์๊ฐ ๋์ฌ ๋
root[str(int(r))] = 0
mt[str(int(r))] = 1
y.append(int(r))
for w in range(len(root)):
if root[str(y[w])] < mt[str(y[w])]:
root[str(y[w])] = mt[str(y[w])]
for v,k in root.items():
answer *= (int(v)**k)
return int(answer)
์ฌ์ฉ๋ ๊ฐ๋
'Developer > ๐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํ์ผ๋ช ์ ๋ ฌ (0) | 2020.07.08 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/python] - ์์ด ๋๋ง์๊ธฐ (0) | 2020.06.28 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ (0) | 2020.06.27 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ์นดํซ (0) | 2020.06.24 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํฐ์ผ๋ชฌ (0) | 2020.06.24 |