개인적으로 너무 어려운 문제였다. 배열를 정리할 생각은 못했고 그냥 배열를 대조 했을때 나머지 차집합만 생각하고 코드를 작성했다.
function solution(participant, completion) {
// 1. 파라미터 배열들를 알파벳 순서대로 나열한다.
participant.sort()
completion.sort()
// 2.
for(let i in participant){
// 3. 배열1과 배열2는 한개를 뺀 나머지가 같아야 하기 때문에
// 4. 배열를 나열 했을때 맞지 않는 부분이 있다면 미완주자이다.
// 5. participant[i]를 리턴한다.
if(participant[i] !== completion[i]){
return participant[i]
}
}
}
// function solution(participant, completion) {
// let answer = ''
// 두 배열를 집합해서 나머지 차집합을 리턴하는 솔루션을 만들었다.
// filter() 매소드로 서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.
// 함수의 테스트 : includes() 메서드는 배열이 특정 요소를 포함하고 있는지 판별합니다.
// answer = completion.filter(x => !participant.includes(x))
// 기존배열에 새로운 배열를 더한다.
// .concat(participant.filter(x => !completion.includes(x)));
// 즉 completion에서 participant에 특정 요소가 포함 되지 않는 새함수와
// particaipant에서 completion에 특정 요소가 포함되지 않는 함수의 합
//
// 하지만 이런 씩으로 코딩을 하면 같은 배열에 중복을 처리 할수 없기에 마지막 예제에서 막혔었다.
// return answer[0];
// }
'개발일기 > 알고리즘' 카테고리의 다른 글
부족한 금액 계산하기 (0) | 2021.11.10 |
---|---|
행렬의 덧셈 (0) | 2021.11.10 |
나누어 떨어지는 숫자 배열 (0) | 2021.11.08 |
행렬의 덧셈 (0) | 2021.11.08 |
음양 더하기 (0) | 2021.11.08 |