def solution(today, terms, privacies):
today=list(map(int,today.split('.')))
std=today[0]*12*28+today[1]*28+today[2]
terms=dict([x.split(' ') for x in terms]) #약관 종류, 유효기간
privacies=[x.split(' ') for x in privacies]
answer=[]
for i,p in enumerate(privacies):
date,kind = p
date=list(map(int,date.split('.')))
y=date[0]
m=date[1]
d=date[2]
if y*12*28+m*28+d+int(terms[kind])*28<=std:
answer.append(i+1)
return answer
비교해야하는 날짜들을 일수로 바꿔서 비교하는 방법
간단하고 쉽고 예외처리할 것도 없다
map object는 iterable이라 반복문을 돌릴수는 있지만 subscriptable은 안되기때문에 인덱스를 사용하려면 리스트로 꼭 바꿔줘야한다⭐
from collections import Counter
def solution(id_list, report, k):
ans=dict([x for x in zip(id_list,[0]*len(id_list))])
er_ee=[x.split(' ') for x in set(report)]
re_list= [kk for kk,v in Counter([x[1] for x in er_ee]).items() if v>=k]
for e in er_ee:
er,ee=e
if ee in re_list:
ans[er]+=1
return list(ans.values())
Counter 쓰는 거 습관들어서 안되겠다 ..
def solution(id_list, report, k):
answer = [0] * len(id_list)
reports = {x : 0 for x in id_list}
for r in set(report):
reports[r.split()[1]] += 1
for r in set(report):
if reports[r.split()[1]] >= k:
answer[id_list.index(r.split()[0])] += 1
return answer
딕셔너리 만들 때 {x : 0 for x in id_list}
이렇게 만들 수 있다 ⭐⭐⭐