5주차 월요일 알고리즘

문혜민·2022년 4월 9일

5주차 수업내용

목록 보기
1/8

완주하지 못한 선수

풀다가 포기....


function solution(participant, completion) {
  let answer =0
let result = {};
participant.concat(completion)
   .map((el)=> !result[el]? result[el]=1 : result[el] +=1)
  
let value= Object.values(result)
let min=Math.min(...value)
  console.log(result)
value.map((el,i)=>{if(el===min) answer+=i}
  
)
  return Object.keys(result)[answer]
}

solution(["mislav", "stanko", "mislav", "ana"],["stanko", "ana", "mislav"])

멘토님답

function solution(participant, completion) {
  let answer =0
for(let i =0; i< completion.length;i++){
  if(participant.includes(completion[i])){
   participant.splice(participant.indexOf(completion[i]),1)
  }
}
  return participant[0]
}

// splice
// 1. 배열에만 사용가능하다.
// 2. 원하는 위치(인덱스)의 데이터를 제거하거나 추가할 수 있다.
// 3. 원본이 저장
function solution(participant, completion) {
  let answer ={}
  // 참가한 선수의 이름과 참가자수를 정리
for(let i =0; i< participant.length;i++){
  answer[participant[i]]===undefined
  ? answer[participant[i]]=1
  : answer[participant[i]]++
}
  // 완주한 명단에서 선수이름을 제거
  for(let i =0; i< completion.length;i++){
   if(answer[completion[i]]){
     answer[completion[i]]--
   }
  }
  for(let key in answer){
    if(answer[key]!==0){
      return key
    }
  }
}

간단하게.


function solution(participant, completion) {
completion.sort((a,b)=>a>b ?1:-1) // 오름차순으로 정렬
participant.sort((a,b)=>a>b ?1:-1)
  let answer=""

  for(let i =0; i< participant.length;i++){
      console.log(participant[i], completion[i])
    if(participant[i]!== completion[i]){
      answer+=participant[i]
      break;
    }
    
  }
  return answer
}


function solution(participant, completion) {
completion.sort((a,b)=>a>b ?1:-1) // 오름차순으로 정렬
participant.sort((a,b)=>a>b ?1:-1)

  const answer=participant.filter((name,i)=>{
    return name !== completion[i];
  })
 return answer[0]
}```
profile
프론드엔드 개발하면서 메모장처럼 쓰는즁

0개의 댓글