function solution(friends, gifts) {
var answer = 0;
// 선물지수 계산
const object = {}
const giftScores = friends.map((name)=>{
let score= 0
const filter = gifts.forEach(i=>{if(i.split(" ")[0]===name){
score +=1
}else if(i.split(" ")[1]===name){
score -=1
} })
return {name ,score }
})
let arr =[]
for (let i = 0;i<friends.length;i++){
// 준 사람
const gifter = friends[i]
let giftScore = 0
for (let j = 0;j<friends.length;j++){
// 받은 사람
const receiver = friends[j]
// 같을 경우 다음 사람으로
if(gifter===receiver){
continue
}
// gifter이나 receiver가 포함되는 리스트(유효성)
const filter = gifts.filter(item=>item.includes(gifter)||item.includes(receiver))
const giftPoint = filter.filter(item=>item.split(" ")[0]===gifter&&item.split(" ")[1]===receiver).length
const receivePoint= filter.filter(item=>item.split(" ")[0]===receiver&&item.split(" ")[1]===gifter).length
if(giftPoint>receivePoint){
giftScore+=1
}
// 같을 경우 선물 지수 탐색
if(giftPoint===receivePoint){
const findGifter = giftScores.find(item => item.name === gifter).score
const findReceiver =giftScores.find(item => item.name === receiver).score
if(findGifter>findReceiver ){
giftScore +=1
}
}
}
arr.push(giftScore)
}
// 최대값 리턴
return Math.max(...arr);
}
순차적인 코드를 짰는데 유효성에서 에러가 나서 filter 변수를 추가했더니 통과되었다.