์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ์ฃผ์ฑ๋ถ๋ถ์
- ์ธ๋์ํ๋ง
- numpy
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ํ์ด์ฌ
- LDA
- ์๋ํด๋ผ์ฐ๋
- DBSCAN
- ํฌ๋กค๋ง
- ๋ฐ์ดํฐ๋ถ์
- ADP
- ํ ์คํธ๋ถ์
- pandas
- ๋น ๋ฐ์ดํฐ
- PCA
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- ๋์ํ๋ณธ
- t-test
- ADsP
- iloc
- opencv
- ๊ตฐ์งํ
- Python
- ์ค๋ฒ์ํ๋ง
- ๋ ๋ฆฝํ๋ณธ
- dataframe
- Lambda
- datascience
Data Science LAB
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (๊ตฌ๋ช ๋ณดํธ) ๋ณธ๋ฌธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (๊ตฌ๋ช ๋ณดํธ)
ใ ใ ใ ใ 2022. 12. 25. 17:251. ๋ฌธ์ ์ค๋ช
๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋๋ค์ ๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ๋ช ๋ณดํธ๋ ์์์ ํ ๋ฒ์ ์ต๋ 2๋ช ์ฉ ๋ฐ์ ํ ์ ์๊ณ , ๋ฌด๊ฒ ์ ํ๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๊ฐ [70kg, 50kg, 80kg, 50kg]์ด๊ณ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ด 100kg์ด๋ผ๋ฉด 2๋ฒ์งธ ์ฌ๋๊ณผ 4๋ฒ์งธ ์ฌ๋์ ๊ฐ์ด ํ ์ ์์ง๋ง 1๋ฒ์งธ ์ฌ๋๊ณผ 3๋ฒ์งธ ์ฌ๋์ ๋ฌด๊ฒ์ ํฉ์ 150kg์ด๋ฏ๋ก ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ์ฌ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ต๋ํ ์ ๊ฒ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ๋ด์ ๋ฐฐ์ด people๊ณผ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ limit๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๊ธฐ ์ํด ํ์ํ ๊ตฌ๋ช ๋ณดํธ ๊ฐ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
2. ์ ํ ์ฌํญ
- ๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋์ 1๋ช ์ด์ 50,000๋ช ์ดํ์ ๋๋ค.
- ๊ฐ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ๋ 40kg ์ด์ 240kg ์ดํ์ ๋๋ค.
- ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ 40kg ์ด์ 240kg ์ดํ์ ๋๋ค.
- ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ํญ์ ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ ์ค ์ต๋๊ฐ๋ณด๋ค ํฌ๊ฒ ์ฃผ์ด์ง๋ฏ๋ก ์ฌ๋๋ค์ ๊ตฌ์ถํ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
3. ๋ด ํ์ด
from collections import deque
def solution(people, limit):
answer = 0
people = deque(sorted(people))
while len(people) >= 1:
i = people.pop()
if len(people) == 0:
answer += 1
return answer
elif i + people[0] <= limit:
answer += 1
people.popleft()
else:
answer += 1
return answer
1. ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ์ฌ deque๋ก ์ ์ธ (์๊ฐํจ์จ์ฑ ๋๋ฌธ)
2. ์ ๋ ฌ๋ ๋ฆฌ์คํธ์์ ํฐ ์๋ถํฐ ์์๋๋ก pop()
3. ๊ฐ์ฅ ์์ ์์ pop๋ ์ซ์๋ฅผ ๋ํ์ ๋ limit๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๊ฐ์ฅ ์์์๋ ์ญ์ (popleft) ํ๋ค answer +1
4. ๊ฐ์ฅ ์์ ์ + pop๋ ์ซ์ > limit์ธ ๊ฒฝ์ฐ์๋ answer + 1
5. deque์ ๋จ์ ์์๊ฐ 1๊ฐ์ธ ๊ฒฝ์ฐ์๋ answer +1 ํ ๋ค ๋ฐํ
4. ๋ค๋ฅธ ์ฌ๋ ํ์ด
def solution(people, limit) :
answer = 0
people.sort()
a = 0
b = len(people) - 1
while a < b :
if people[b] + people[a] <= limit :
a += 1
answer += 1
b -= 1
return len(people) - answer
1. ๊ตฌ์ถํด์ผํ๋ ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
2. ๊ฐ์ฅ ํฐ ์์ ๊ฐ์ฅ ์์์๋ฅผ ๋ํด limit๋ณด๋ค ์์ผ๋ฉด a + 1, answer +1
3. b๋ ๊ฐ ๋ฐ๋ณต๋ง๋ค -1
4. ์ ์ฒด ์ธ์ -answer ๋ก ๋ฐํ