728x90
โญ ๋ฌธ์ ์ค๋ช
์์ธ์๋ถํด๋ ์ด๋ค ์๋ฅผ ์์๋ค์ ๊ณฑ์ผ๋ก ํํํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด 12๋ฅผ ์์ธ์ ๋ถํดํ๋ฉด 2 * 2 * 3 ์ผ๋ก ๋ํ๋ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ 12์ ์์ธ์๋ 2์ 3์
๋๋ค. ์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ n์ ์์ธ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ด์ ๋ฐฐ์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ ์ ํ์ฌํญ
2 ≤ n ≤ 10,000
๐ฑ ์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
12๋ฅผ ์์ธ์๋ถํดํ๋ฉด 2 * 2 * 3 ์ ๋๋ค. ๋ฐ๋ผ์ [2, 3]์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
17์ ์์์ ๋๋ค. ๋ฐ๋ผ์ [17]์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
420์ ์์ธ์๋ถํดํ๋ฉด 2 * 2 * 3 * 5 * 7 ์ ๋๋ค. ๋ฐ๋ผ์ [2, 3, 5, 7]์ returnํฉ๋๋ค.
โจ ๋ด ํ์ด
def solution(n):
answer = []
for i in range(2, n + 1) :
while (n % i == 0) :
n = n / i
answer.append(i)
return sorted(list(set(answer)))
ํ์ด ์ธ์ด : Python3
๐ ๋ฌธ์ ํ์ด
ํ์ด
1. ๋ฐ๋ณต๋ฌธ์ ํตํด 2๋ถํฐ n๊น์ง์ ์ซ์๋ฅผ ์์ฐจ์ ์ผ๋ก ํ์
2. n์ด ํ์์ค์ธ ์ซ์๋ก ๋๋์ด ์ง๋ค๋ฉด, ํด๋น ์ซ์๋ก n์ด ๋๋ ์ง์ง ์์๋๊น์ง n์ i๋ก ๋๋๋ฉฐ i๋ฅผ ์ ๋ต ๋ฐฐ์ด์ ์ถ๊ฐ
ex) ํ์ ์ค์ธ ์ซ์๊ฐ 2๊ณ n์ด 100์ด๋ผ๋ฉด ๋๋ ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ n์ 50์ด ๋๋ค.
50๋ํ 2๋ก ๋๋ ์ง๊ธฐ ๋๋ฌธ์ n์ 25๊ฐ ๋๋ค.
25๋ 2๋ก ๋๋ ๋จ์ด์ง์ง ์๊ธฐ ๋๋ฌธ์ while๋ฌธ ํ์ถ.
3,4๋ก๋ ๋๋์ด์ง์ง ์์ผ๋ ํจ์ค.
5๋ก๋ ๋๋ ์ง๊ธฐ ๋๋ฌธ์ n์ 5๊ฐ ๋๋ค.
5๋ 5๋ก ๋๋ ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ n์ 1์ด ๋๋ค.
๋ฐ๋ณต๋ฌธ ์ข ๋ฃ ํ, answer = [2,2,5,5]
3. ์ค๋ณต์ ์ ๊ฑฐํด์ผ ๋๊ธฐ ๋๋ฌธ์, set(answer)์ ํ์ฌ set ์๋ฃ๊ตฌ์กฐ์ ํน์ฑ์ ์ด์ฉํด ์ค๋ณต์ ์ ๊ฑฐํ๋ค
4. set์ด ๋ answer์ ๋ค์ list(answer)์ ํตํด array๋ก ๋ณ๊ฒฝ
5. sorted(answer)์ ํ์ฌ, answer์ ์ ๋ ฌํ ๋ค ๋ฐํ
728x90