https://programmers.co.kr/learn/courses/30/lessons/92334
def solution(id_list, report, k):
answer = []
receive = {} #신고 받은 사람이 key
send = {} # 신고 한 사람이 key
ban = [] #정지당한 유저 리스트
for reported in report:
er = reported.split()[0] #신고 한 사람
ed = reported.split()[1] #신고 받은 사람
#신고 받은 사람이 key인 딕셔너리 제작
l = receive.get(ed,[])
l.append(er)
receive[ed] = list(set(l)) # 중복제거
#신고 한 사람이 key인 딕셔너리 제작
li = send.get(er,[])
li.append(ed)
send[er] = list(set(li))
for ed in receive:
if len(receive[ed]) >=k:
ban.append(ed)
for id in id_list:
temp = 0
for b in ban:
if b in send.get(id,[]):
temp += 1
answer.append(temp)
return answer
알게 된 것 :
dict.get(a,b)
dict 딕셔너리에 key값 a가 있으면 해당 value를 반환하고, 없으면 b를 반환
list(set(중복제거할 변수))
중복 제거하는 방법!
num_list = [1,2,3,4,5]
num1, num2, num3, num4, num5 = num_list
리스트 len에 맞게 변수를 할당해 주면 unpacking이 된다.
num1, *num2 = num_list
*을 앞에 붙이면 num1을 제외하고 전부 가져오라는 뜻이 됨. 즉,
num1 = 1
num2 = [2,3,4,5]
num1, *num2, num3 = num_list
하면 첫번째 거, 마지막 거 제외하고 가져오게 됨. 즉,
num1 = 1
num2 = [2,3,4]
num3 = 5
가 됨!