100/100
20분
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
function solution(participant, completion)
{
participant.sort()
completion.sort()
for(let i=0;i<participant.length;i++)
{
if(participant[i] !== completion[i])
return participant[i];
}
}
처음에 participant를 전부 순회하고 나서 결과를 시도했다가 효율성에서 문제가 발생해 정렬 후 순회를 했을때 서로다른 부분이 보이는 즉시 그때가 완주 못한 선수이므로 리턴을 진행
100/100
5분
absolutes에 있는 배열에서 해당 순서의 signs가 false이면 -를 true면 +를 진행해서 전부 더한다. => 모든 배열의 순회가 필수적이면서 해당 값들의 합을 요구하므로 reduce를 사용
function solution(absolutes, signs) {
return absolutes.reduce((acc,val,idx)=>signs[idx] == true ? acc+val : acc-val,0)
}