# 남의 풀이
def solution(id_list, report, k):
answer = []
dic = {}
kList = []
report = set(report)
reptedList = list(map(lambda x:x.split(" ")[1], report))
for id in id_list:
dic[id];
for rep in report:
if id == rep.split(" ")[0]:
dic[id].append(rep.split(" ")[1])
for id in id_list:
if (k <= reptedList.count(id)) :
kList.append(id);
kList = set(kList)
for d in dic.values():
answer.append(len(set(d).intersection(kList)))
return answer
난 당연히 성공 이라고 생각했지만 시간 초과! 실패
ㅠㅠㅠ 메모리에 문제 여서 이리 저리 짱구를 돌려봣지만, 잘 안됫다.
def solution(id_list, report, k):
#id_list의 갯수 만큼 0을 채워준다.
answer = [0] * len(id_list);
reports = {};
for i in id_list:
reports[i] = 0
for rep in set(report):
reports[rep.split()[1]] += 1
for rep in set(report):
if reports[rep.split()[1]] >= k:
answer[id_list.index(rep.split()[0])] += 1
return answer
.append()
를 사용하여 배열에 값을 추가해주려고 하였다. 하지만 0으로 빈배열을 만든 후에 숫자를 더해주는것이 더 효율적이라고 생각해서 바꿔주었다.id_list.index("값")
으로 해당 인덱스를 찾아준 후에 1씩 더해주면 메일 발송한 내역을 확인 할수 있습니다!하루에 코테 하나씩 풀어보고 싶은데 이렇게 오래걸리고 어려울줄이야. index라는 함수도 몰랏고, 여전히 부족한게 너무 많다. 문제를 제대로 볼 수 있도록 읽기부터 다시 공부해야 되나 싶기도 하고..!
그래도 자료형을 다시 한번 공부 할수 있는 좋은 문제였고, index라는 자바스크립트의 indexof와 비슷한 함수를 배울 수 있어서 좋았다.