์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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
- ํ์ด์ฌ
- iloc
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ๋ ๋ฆฝํ๋ณธ
- ํฌ๋กค๋ง
- ๋ฐ์ดํฐ๋ถ์
- ์๋ํด๋ผ์ฐ๋
- ์ธ๋์ํ๋ง
- ๋น ๋ฐ์ดํฐ
- ์ค๋ฒ์ํ๋ง
- ADsP
- ํ ์คํธ๋ถ์
- dataframe
- PCA
- LDA
- opencv
- t-test
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- Lambda
- pandas
- DBSCAN
- datascience
- ์ฃผ์ฑ๋ถ๋ถ์
- Python
- ADP
- ๋ฐ์ดํฐ๋ถ๊ท ํ
Data Science LAB
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (์ ํ๋ฒํธ๋ชฉ๋ก) ๋ณธ๋ฌธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (์ ํ๋ฒํธ๋ชฉ๋ก)
ใ ใ ใ ใ 2023. 1. 4. 15:511. ๋ฌธ์ ์ค๋ช
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ ์ค, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํ๋ ค ํฉ๋๋ค.
์ ํ๋ฒํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, ๊ตฌ์กฐ๋ ์ ํ๋ฒํธ๋ ์์์ด์ ์ ํ๋ฒํธ์ ์ ๋์ฌ์
๋๋ค.
- ๊ตฌ์กฐ๋ : 119
- ๋ฐ์ค์ : 97 674 223
- ์ง์์ : 11 9552 4421
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด phone_book ์ด solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด๋ค ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด false๋ฅผ ๊ทธ๋ ์ง ์์ผ๋ฉด true๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
2. ์ ํ ์ฌํญ
- phone_book์ ๊ธธ์ด๋ 1 ์ด์ 1,000,000 ์ดํ์
๋๋ค.
- ๊ฐ ์ ํ๋ฒํธ์ ๊ธธ์ด๋ 1 ์ด์ 20 ์ดํ์ ๋๋ค.
- ๊ฐ์ ์ ํ๋ฒํธ๊ฐ ์ค๋ณตํด์ ๋ค์ด์์ง ์์ต๋๋ค.
3. ๋ด ํ์ด
def solution(phone_book):
phone_book.sort(key = lambda x:(len(x),x))
for num, i in enumerate(phone_book):
for x in phone_book[num+1:]:
if x.startswith(i):
return False
return True
- ํจ์จ์ฑ 3,4๋ฒ ํ ์คํธ ์ผ์ด์ค ํต๊ณผ โ (์ด์ค for๋ฌธ์ ์ฌ์ฉํด ์๊ฐ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์)
def solution(phone_book):
phone_book.sort(key = lambda x:(x,len(x)))
for num, i in enumerate(phone_book[:-1]):
if phone_book[num+1].startswith(i):
return False
return True
- sort() ํจ์๋ฅผ ์ด์ฉํด ์ซ์๊ฐ๊ณผ ๋ฌธ์์ด ๊ธธ์ด ์์๋ก ์ ๋ ฌ
- for ๋ฌธ์ ์ฌ์ฉํ์ฌ ํ์ฌ ์์๊ฐ index +1 ๋ฒ์งธ ์์์ ์ ๋์ด์ด๋ฉด False ๋ฐํ
- ๊ทธ ์ธ์๋ True ๋ฐํ
- > for ๋ฌธ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๊ฐ ๋ณต์ก๋๊ฐ O(n^2) -> O(n)์ผ๋ก ๋ณ๊ฒฝ๋จ
4. ๋ค๋ฅธ ์ฌ๋ ํ์ด
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True