function solution(friends, gifts) {
var answer = 0;
var score = new Map();
var log = new Map();
//hash
for(i=0; i<friends.length;i++){
var name = friends[i]
score.set(name, gifts.filter((g)=>g.split(" ")[0]===name).length - gifts.filter((g)=>g.split(" ")[1]===name).length)
log.set(name,gifts.filter(g=>g.split(" ")[0]==name).map((i)=>i.split(" ")[1]))
}
//hash
for(i=0; i<friends.length; i++){
var name = friends[i];
var numOfGift = 0;
for(j = 0; j<friends.length; j++){
var receiver = friends[j]
var receive = log.get(receiver).filter((f)=>f==name).length;
var give = log.get(name).filter((f)=>f==receiver).length;
if(give>receive) numOfGift++;
else if(give===receive){
if(score.get(name)>score.get(receiver)) numOfGift++;
}
if(numOfGift>answer)
answer=numOfGift;
}
}
return answer;
}
filter를 계속 사용했더니 시간초과가 발생해서
해시맵을 사용해서 해결했다! 진작쓸걸 ㅎ ..
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 도넛과 막대 그래프 js javascript (0) | 2024.05.22 |
---|---|
[프로그래머스] PCCP 기출문제 1번 붕대 감기 js javascript (0) | 2024.05.17 |
[프로그래머스] 공 던지기 js javascript (0) | 2024.05.10 |
[프로그래머스] 약수의 개수와 덧셈 js javascript (0) | 2024.05.09 |
[프로그래머스] 하샤드 수 js javascript (0) | 2024.05.09 |