์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋์ํ๋ณธ
- ์ฃผ์ฑ๋ถ๋ถ์
- DBSCAN
- ์๋ํด๋ผ์ฐ๋
- Lambda
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ADP
- ๋ ๋ฆฝํ๋ณธ
- Python
- ์ค๋ฒ์ํ๋ง
- opencv
- dataframe
- ๊ตฐ์งํ
- ํฌ๋กค๋ง
- ADsP
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ์ธ๋์ํ๋ง
- ๋น ๋ฐ์ดํฐ
- ๋ฐ์ดํฐ๋ถ์
- PCA
- numpy
- LDA
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- pandas
- datascience
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- ํ ์คํธ๋ถ์
- iloc
- t-test
- ํ์ด์ฌ
Data Science LAB
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (๊ทค๊ณ ๋ฅด๊ธฐ) ๋ณธ๋ฌธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (๊ทค๊ณ ๋ฅด๊ธฐ)
ใ ใ ใ ใ 2022. 12. 5. 02:451. ๋ฌธ์ ์ค๋ช
๊ฒฝํ๋ ๊ณผ์์์์ ๊ทค์ ์ํํ์ต๋๋ค. ๊ฒฝํ๋ ์ํํ ๊ทค ์ค 'k'๊ฐ๋ฅผ ๊ณจ๋ผ ์์ ํ๋์ ๋ด์ ํ๋งคํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ํํ ๊ทค์ ํฌ๊ธฐ๊ฐ ์ผ์ ํ์ง ์์ ๋ณด๊ธฐ์ ์ข์ง ์๋ค๊ณ ์๊ฐํ ๊ฒฝํ๋ ๊ทค์ ํฌ๊ธฐ๋ณ๋ก ๋ถ๋ฅํ์ ๋ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ์ ์๋ฅผ ์ต์ํํ๊ณ ์ถ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฒฝํ๊ฐ ์ํํ ๊ทค 8๊ฐ์ ํฌ๊ธฐ๊ฐ [1, 3, 2, 5, 4, 5, 2, 3] ์ด๋ผ๊ณ ํฉ์๋ค. ๊ฒฝํ๊ฐ ๊ทค 6๊ฐ๋ฅผ ํ๋งคํ๊ณ ์ถ๋ค๋ฉด, ํฌ๊ธฐ๊ฐ 1, 4์ธ ๊ทค์ ์ ์ธํ ์ฌ์ฏ ๊ฐ์ ๊ทค์ ์์์ ๋ด์ผ๋ฉด, ๊ทค์ ํฌ๊ธฐ์ ์ข ๋ฅ๊ฐ 2, 3, 5๋ก ์ด 3๊ฐ์ง๊ฐ ๋๋ฉฐ ์ด๋๊ฐ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ๊ฐ ์ต์์ผ ๋์ ๋๋ค.
๊ฒฝํ๊ฐ ํ ์์์ ๋ด์ผ๋ ค๋ ๊ทค์ ๊ฐ์ k์ ๊ทค์ ํฌ๊ธฐ๋ฅผ ๋ด์ ๋ฐฐ์ด tangerine์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๊ฒฝํ๊ฐ ๊ทค k๊ฐ๋ฅผ ๊ณ ๋ฅผ ๋ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ์ ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
2. ์ ํ ์ฌํญ
- 1 ≤ k ≤ tangerine์ ๊ธธ์ด ≤ 100,000
- 1 ≤ tangerine์ ์์ ≤ 10,000,000
3. ๋ด ํ์ด
from collections import Counter
def solution(k, tangerine):
count_list = Counter(tangerine)
tangerine=sorted(tangerine,key=lambda x : (count_list[x],x),reverse=True)
return len(set(tangerine[:k]))
1. Counter ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ ์์์ ๊ฐ์๋ฅผ count
2. sorted()ํจ์๋ฅผ ์ด์ฉํด count_list์ ๊ฐ์๊ฐ ๋ง์ ์์๋๋ก ์ ๋ ฌ, ๋๋ฒ์งธ key๋ x๋ก ์ค์
3. set()ํจ์๋ฅผ ์ฌ์ฉํด k๋ฒ์งธ ์์ ์ค ์ค๋ณต ์ ๊ฑฐ ํ ๊ฐ์ ์นด์ดํธํ์ฌ ๋ฐํ
โ๏ธlist.count(x)๋ก๋ ์ ๋ ฌ ๊ฐ๋ฅํ์ง๋ง ์๊ฐ์ด ๋ ์ค๋๊ฑธ๋ ค ์๊ฐ ์ด๊ณผ
4. ๋ค๋ฅธ ์ฌ๋ ํ์ด
import collections
def solution(k, tangerine):
answer = 0
cnt = collections.Counter(tangerine)
for v in sorted(cnt.values(), reverse = True):
k -= v
answer += 1
if k <= 0:
break
return answer
1. counter()ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ๊ฐ์ ์นด์ดํธ
2. ์นด์ดํธ๋ ๋์ ๋๋ฆฌ๋ฅผ ์ญ์์ผ๋ก ์ ๋ ฌํ์ฌ for๋ฌธ์ ์ฌ์ฉํด k์์ ๋์ ๋๋ฆฌ์ value๊ฐ๋งํผ ๋นผ์ค, answer์ +1
3. k๊ฐ 0๋ณด๋ค ๊ฐ๊ฑฐ๋ ์์์ง๋ฉด break ํ answer ๋ฐํ