μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- ν¬λ‘€λ§
- μ€λ²μνλ§
- pandas
- ADP
- λ 립νλ³Έ
- ADsP
- Python
- DBSCAN
- Lambda
- λ°μ΄ν°λΆμμ λ¬Έκ°
- LDA
- λ°μ΄ν°λΆμ
- datascience
- dataframe
- PCA
- νμ΄μ¬
- numpy
- μΈλμνλ§
- λμνλ³Έ
- ν μ€νΈλΆμ
- κ΅°μ§ν
- λ°μ΄ν°λΆκ· ν
- λ°μ΄ν°λΆμμ€μ λ¬Έκ°
- λΉ λ°μ΄ν°λΆμκΈ°μ¬
- opencv
- iloc
- μλν΄λΌμ°λ
- λΉ λ°μ΄ν°
- t-test
- μ£Όμ±λΆλΆμ
Data Science LAB
[Python] νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ level 2 (μ€ν μ±ν λ°©) λ³Έλ¬Έ
[Python] νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ level 2 (μ€ν μ±ν λ°©)
γ γ γ γ 2022. 10. 27. 19:261. λ¬Έμ μ€λͺ
μΉ΄μΉ΄μ€ν‘ μ€νμ±ν λ°©μμλ μΉκ΅¬κ° μλ μ¬λλ€κ³Ό λνλ₯Ό ν μ μλλ°, λ³Έλ λλ€μμ΄ μλ κ°μμ λλ€μμ μ¬μ©νμ¬ μ±ν λ°©μ λ€μ΄κ° μ μλ€.
μ μ μ¬μμΈ κΉν¬λ£¨λ μΉ΄μΉ΄μ€ν‘ μ€ν μ±ν λ°©μ κ°μ€ν μ¬λμ μν΄, λ€μν μ¬λλ€μ΄ λ€μ΄μ€κ³ , λκ°λ κ²μ μ§μΌλ³Ό μ μλ κ΄λ¦¬μμ°½μ λ§λ€κΈ°λ‘ νλ€. μ±ν λ°©μ λκ΅°κ° λ€μ΄μ€λ©΄ λ€μ λ©μμ§κ° μΆλ ₯λλ€.
"[λλ€μ]λμ΄ λ€μ΄μμ΅λλ€."
μ±ν λ°©μμ λκ΅°κ° λκ°λ©΄ λ€μ λ©μμ§κ° μΆλ ₯λλ€.
"[λλ€μ]λμ΄ λκ°μ΅λλ€."
μ±ν λ°©μμ λλ€μμ λ³κ²½νλ λ°©λ²μ λ€μκ³Ό κ°μ΄ λ κ°μ§μ΄λ€.
- μ±ν λ°©μ λκ° ν, μλ‘μ΄ λλ€μμΌλ‘ λ€μ λ€μ΄κ°λ€.
- μ±ν λ°©μμ λλ€μμ λ³κ²½νλ€.
λλ€μμ λ³κ²½ν λλ κΈ°μ‘΄μ μ±ν λ°©μ μΆλ ₯λμ΄ μλ λ©μμ§μ λλ€μλ μ λΆ λ³κ²½λλ€.
μλ₯Ό λ€μ΄, μ±ν λ°©μ "Muzi"μ "Prodo"λΌλ λλ€μμ μ¬μ©νλ μ¬λμ΄ μμλλ‘ λ€μ΄μ€λ©΄ μ±ν λ°©μλ λ€μκ³Ό κ°μ΄ λ©μμ§κ° μΆλ ₯λλ€.
"Muziλμ΄ λ€μ΄μμ΅λλ€."
"Prodoλμ΄ λ€μ΄μμ΅λλ€."
μ±ν λ°©μ μλ μ¬λμ΄ λκ°λ©΄ μ±ν λ°©μλ λ€μκ³Ό κ°μ΄ λ©μμ§κ° λ¨λλ€.
"Muziλμ΄ λ€μ΄μμ΅λλ€."
"Prodoλμ΄ λ€μ΄μμ΅λλ€."
"Muziλμ΄ λκ°μ΅λλ€."
Muziκ° λκ°ν λ€μ λ€μ΄μ¬ λ, Prodo λΌλ λλ€μμΌλ‘ λ€μ΄μ¬ κ²½μ° κΈ°μ‘΄μ μ±ν λ°©μ λ¨μμλ Muziλ Prodoλ‘ λ€μκ³Ό κ°μ΄ λ³κ²½λλ€.
"Prodoλμ΄ λ€μ΄μμ΅λλ€."
"Prodoλμ΄ λ€μ΄μμ΅λλ€."
"Prodoλμ΄ λκ°μ΅λλ€."
"Prodoλμ΄ λ€μ΄μμ΅λλ€."
μ±ν λ°©μ μ€λ³΅ λλ€μμ νμ©νκΈ° λλ¬Έμ, νμ¬ μ±ν λ°©μλ ProdoλΌλ λλ€μμ μ¬μ©νλ μ¬λμ΄ λ λͺ μ΄ μλ€. μ΄μ , μ±ν λ°©μ λ λ²μ§Έλ‘ λ€μ΄μλ Prodoκ° RyanμΌλ‘ λλ€μμ λ³κ²½νλ©΄ μ±ν λ°© λ©μμ§λ λ€μκ³Ό κ°μ΄ λ³κ²½λλ€.
"Prodoλμ΄ λ€μ΄μμ΅λλ€."
"Ryanλμ΄ λ€μ΄μμ΅λλ€."
"Prodoλμ΄ λκ°μ΅λλ€."
"Prodoλμ΄ λ€μ΄μμ΅λλ€."
μ±ν λ°©μ λ€μ΄μ€κ³ λκ°κ±°λ, λλ€μμ λ³κ²½ν κΈ°λ‘μ΄ λ΄κΈ΄ λ¬Έμμ΄ λ°°μ΄ recordκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λͺ¨λ κΈ°λ‘μ΄ μ²λ¦¬λ ν, μ΅μ’ μ μΌλ‘ λ°©μ κ°μ€ν μ¬λμ΄ λ³΄κ² λλ λ©μμ§λ₯Ό λ¬Έμμ΄ λ°°μ΄ ννλ‘ return νλλ‘ solution ν¨μλ₯Ό μμ±νλΌ.
2. μ ν μ¬ν
- recordλ λ€μκ³Ό κ°μ λ¬Έμμ΄μ΄ λ΄κΈ΄ λ°°μ΄μ΄λ©°, κΈΈμ΄λ 1 μ΄μ 100,000 μ΄νμ΄λ€.
- λ€μμ recordμ λ΄κΈ΄ λ¬Έμμ΄μ λν μ€λͺ
μ΄λ€.
- λͺ¨λ μ μ λ [μ μ μμ΄λ]λ‘ κ΅¬λΆνλ€.
- [μ μ μμ΄λ] μ¬μ©μκ° [λλ€μ]μΌλ‘ μ±ν λ°©μ μ μ₯ - "Enter [μ μ μμ΄λ] [λλ€μ]" (ex. "Enter uid1234 Muzi")
- [μ μ μμ΄λ] μ¬μ©μκ° μ±ν λ°©μμ ν΄μ₯ - "Leave [μ μ μμ΄λ]" (ex. "Leave uid1234")
- [μ μ μμ΄λ] μ¬μ©μκ° λλ€μμ [λλ€μ]μΌλ‘ λ³κ²½ - "Change [μ μ μμ΄λ] [λλ€μ]" (ex. "Change uid1234 Muzi")
- 첫 λ¨μ΄λ Enter, Leave, Change μ€ νλμ΄λ€.
- κ° λ¨μ΄λ 곡백μΌλ‘ ꡬλΆλμ΄ μμΌλ©°, μνλ²³ λλ¬Έμ, μλ¬Έμ, μ«μλ‘λ§ μ΄λ£¨μ΄μ Έμλ€.
- μ μ μμ΄λμ λλ€μμ μνλ²³ λλ¬Έμ, μλ¬Έμλ₯Ό ꡬλ³νλ€.
- μ μ μμ΄λμ λλ€μμ κΈΈμ΄λ 1 μ΄μ 10 μ΄νμ΄λ€.
- μ±ν λ°©μμ λκ° μ μ κ° λλ€μμ λ³κ²½νλ λ± μλͺ» λ μ λ ₯μ μ£Όμ΄μ§μ§ μλλ€.
3. λ΄ νμ΄
from collections import defaultdict
def solution(record):
id_dict = defaultdict(list)
new_record = []
for id in record:
ids = id.split(' ')
new_record.append(ids)
try:
id_dict[ids[1]]=(ids[2])
except:
pass
answer = []
words = {'Enter':'λμ΄ λ€μ΄μμ΅λλ€.', 'Leave': 'λμ΄ λκ°μ΅λλ€.'}
for i in new_record:
if i[0] == 'Change':
continue
else:
answer.append(id_dict[i[1]]+words[i[0]])
return answer
1. defaultdict(list)λ₯Ό μ΄μ©νμ¬ defaultκ°μ΄ listμΈ λμ λ리 μ μΈ
2. new_record 리μ€νΈλ₯Ό μ μΈνμ¬ κ³΅λ°±(' ')μ κΈ°μ€μΌλ‘ recordμ λ¬Έμμ΄ μμμμ splitλ 리μ€νΈλ₯Ό μΆκ°
3. idλ³ κ°μ₯ λ§μ§λ§μΌλ‘ μ¬μ©ν λλ€μμ λ°μμ€ (forλ¬Έ μ¬μ©)
4. Leaveμ κ²½μ°, 곡백μ κΈ°μ€μΌλ‘ λ¬Έμμ΄μ λΆν νλ©΄ index error λ°μ -> try~except λ¬Έ μ¬μ©νμ¬ ν΄κ²°
5. for λ¬Έμ μ¬μ©νμ¬ Changeμ κ²½μ°λ pass, Enterμ Leaveλ κ°κ° μν©μ λ§μΆ° answer listμ μΆκ°
4. λ€λ₯Έ μ¬λμ νμ΄
def solution(record):
answer = []
namespace = {}
printer = {'Enter':'λμ΄ λ€μ΄μμ΅λλ€.', 'Leave':'λμ΄ λκ°μ΅λλ€.'}
for r in record:
rr = r.split(' ')
if rr[0] in ['Enter', 'Change']:
namespace[rr[1]] = rr[2]
for r in record:
if r.split(' ')[0] != 'Change':
answer.append(namespace[r.split(' ')[1]] + printer[r.split(' ')[0]])
return answer
def solution(record):
user_id = {EC.split()[1]:EC.split()[-1] for EC in record if EC.startswith('Enter') or EC.startswith('Change')}
return [f'{user_id[E_L.split()[1]]}λμ΄ λ€μ΄μμ΅λλ€.' if E_L.startswith('Enter') else f'{user_id[E_L.split()[1]]}λμ΄ λκ°μ΅λλ€.' for E_L in record if not E_L.startswith('Change')]