์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- datascience
- ํ ์คํธ๋ถ์
- Python
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- ํฌ๋กค๋ง
- ๊ตฐ์งํ
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ์ฃผ์ฑ๋ถ๋ถ์
- t-test
- ๋์ํ๋ณธ
- LDA
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- Lambda
- DBSCAN
- ์๋ํด๋ผ์ฐ๋
- opencv
- numpy
- ๋ฐ์ดํฐ๋ถ์
- dataframe
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ๋ ๋ฆฝํ๋ณธ
- ์ค๋ฒ์ํ๋ง
- PCA
- pandas
- ๋น ๋ฐ์ดํฐ
- iloc
- ADP
- ํ์ด์ฌ
- ์ธ๋์ํ๋ง
- ADsP
Data Science LAB
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level1 (๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ) ๋ณธ๋ฌธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level1 (๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ)
ใ ใ ใ ใ 2022. 12. 18. 15:521. ๋ฌธ์ ์ค๋ช
์ซ์๋๋ผ ๊ธฐ์ฌ๋จ์ ๊ฐ ๊ธฐ์ฌ์๊ฒ๋ 1๋ฒ๋ถํฐ number๊น์ง ๋ฒํธ๊ฐ ์ง์ ๋์ด ์์ต๋๋ค. ๊ธฐ์ฌ๋ค์ ๋ฌด๊ธฐ์ ์์ ๋ฌด๊ธฐ๋ฅผ ๊ตฌ๋งคํ๋ ค๊ณ ํฉ๋๋ค.
๊ฐ ๊ธฐ์ฌ๋ ์์ ์ ๊ธฐ์ฌ ๋ฒํธ์ ์ฝ์ ๊ฐ์์ ํด๋นํ๋ ๊ณต๊ฒฉ๋ ฅ์ ๊ฐ์ง ๋ฌด๊ธฐ๋ฅผ ๊ตฌ๋งคํ๋ ค ํฉ๋๋ค. ๋จ, ์ด์๋๋ผ์์ ํ์ฝ์ ์ํด ๊ณต๊ฒฉ๋ ฅ์ ์ ํ์์น๋ฅผ ์ ํ๊ณ , ์ ํ์์น๋ณด๋ค ํฐ ๊ณต๊ฒฉ๋ ฅ์ ๊ฐ์ง ๋ฌด๊ธฐ๋ฅผ ๊ตฌ๋งคํด์ผ ํ๋ ๊ธฐ์ฌ๋ ํ์ฝ๊ธฐ๊ด์์ ์ ํ ๊ณต๊ฒฉ๋ ฅ์ ๊ฐ์ง๋ ๋ฌด๊ธฐ๋ฅผ ๊ตฌ๋งคํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 15๋ฒ์ผ๋ก ์ง์ ๋ ๊ธฐ์ฌ๋จ์์ 15์ ์ฝ์๊ฐ 1, 3, 5, 15๋ก 4๊ฐ ์ด๋ฏ๋ก, ๊ณต๊ฒฉ๋ ฅ์ด 4์ธ ๋ฌด๊ธฐ๋ฅผ ๊ตฌ๋งคํฉ๋๋ค. ๋ง์ฝ, ์ด์๋๋ผ์์ ํ์ฝ์ผ๋ก ์ ํด์ง ๊ณต๊ฒฉ๋ ฅ์ ์ ํ์์น๊ฐ 3์ด๊ณ ์ ํ์์น๋ฅผ ์ด๊ณผํ ๊ธฐ์ฌ๊ฐ ์ฌ์ฉํ ๋ฌด๊ธฐ์ ๊ณต๊ฒฉ๋ ฅ์ด 2๋ผ๋ฉด, 15๋ฒ์ผ๋ก ์ง์ ๋ ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ์ ์์ ๊ณต๊ฒฉ๋ ฅ์ด 2์ธ ๋ฌด๊ธฐ๋ฅผ ๊ตฌ๋งคํฉ๋๋ค. ๋ฌด๊ธฐ๋ฅผ ๋ง๋ค ๋, ๋ฌด๊ธฐ์ ๊ณต๊ฒฉ๋ ฅ 1๋น 1kg์ ์ฒ ์ด ํ์ํฉ๋๋ค. ๊ทธ๋์ ๋ฌด๊ธฐ์ ์์ ๋ฌด๊ธฐ๋ฅผ ๋ชจ๋ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ์ฒ ์ ๋ฌด๊ฒ๋ฅผ ๋ฏธ๋ฆฌ ๊ณ์ฐํ๋ ค ํฉ๋๋ค.
๊ธฐ์ฌ๋จ์์ ์๋ฅผ ๋ํ๋ด๋ ์ ์ number์ ์ด์๋๋ผ์ ํ์ฝ์ผ๋ก ์ ํด์ง ๊ณต๊ฒฉ๋ ฅ์ ์ ํ์์น๋ฅผ ๋ํ๋ด๋ ์ ์ limit์ ์ ํ์์น๋ฅผ ์ด๊ณผํ ๊ธฐ์ฌ๊ฐ ์ฌ์ฉํ ๋ฌด๊ธฐ์ ๊ณต๊ฒฉ๋ ฅ์ ๋ํ๋ด๋ ์ ์ power๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฌด๊ธฐ์ ์ ์ฃผ์ธ์ด ๋ฌด๊ธฐ๋ฅผ ๋ชจ๋ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ์ฒ ์ ๋ฌด๊ฒ๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํ์์ค.
2. ์ ํ ์ฌํญ
- 1 ≤ number ≤ 100,000
- 2 ≤ limit ≤ 100
- 1 ≤ power ≤ limit
3. ๋ด ํ์ด
def getMyDivisor(n):
cnt = 0
for i in range(1, int(n**(1/2)) + 1):
if (n % i == 0):
cnt += 1
if ( (i**2) != n) :
cnt += 1
return cnt
def solution(number, limit, power):
answer = []
for i in range(1,number+1):
n = getMyDivisor(i)
if n > limit : n = power
answer.append(n)
return sum(answer)
1. ์ฝ์์ ๊ฐ์๋ฅผ ์นด์ดํธ ํ๋ ํจ์ ์์ฑ
2. 1๋ถํฐ number๊น์ง ์ฝ์์ ๊ฐ์๋ฅผ ๊ฐ๊ฐ ๊ตฌํ ๋ค
limit๋ณด๋ค ์์ผ๋ฉด ์ฝ์์ ๊ฐ์๋ฅผ, limit๋ณด๋ค ํฌ๋ฉด power๋ฅผ ๋ฆฌ์คํธ์ ์ถ๊ฐ
3. ์ ์ฒด๋ฆฌ์คํธ๋ฅผ ํฉํ์ฌ ๋ฐํ
4. ๋ค๋ฅธ ์ฌ๋ ํ์ด
def cf(n): # ๊ณต์ฝ์ ์ถ๋ ฅ
a = []
for i in range(1,int(n**0.5)+1):
if n%i == 0:
a.append(n//i)
a.append(i)
return len(set(a))
def solution(number, limit, power):
return sum([cf(i) if cf(i)<=limit else power for i in range(1,number+1)])