728x90
https://programmers.co.kr/learn/courses/30/lessons/42576
접근
입력받은 참가한 사람들과 완주한 사람들을 이름순으로 정렬하고 순서대로 비교한다. 이름이 다를 경우 참가한 사람의 이름이 완주하지 못한 것이기 때문에 해당 이름을 반환한다.
위에서 탐색을 진행했을 때도 다른 이름이 없을 때는 마지막 사람의 이름을 반환한다.
구현
- 먼저 참가자와 완주한 사람들을 정렬한다.
- find 함수에 참가, 완주한 사람들의 배열을 전달하고 탐색을 진행한다.
- 이름이 다를 경우 참가한 사람의 이름을 반환하고
- 위에서 반환되지 않았을 때는 마지막 사람의 이름을 반환한다.
function find(participant, completion) {
let N = participant.length;
for(let i=0; i<N-1; i++) {
if(!isEqual(participant[i], completion[i])) return participant[i];
}
return participant[N-1];
}
function isEqual(a, b) {
return a === b;
}
function solution(participant, completion) {
let answer = '';
participant = participant.sort();
completion = completion.sort();
answer = find(participant, completion);
return answer;
}
'프로그래밍 > 함수형 프로그래밍' 카테고리의 다른 글
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 나누어 떨어지는 숫자 배열 (0) | 2021.08.09 |
---|---|
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 제일 작은 수 제거하기 (0) | 2021.08.08 |
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 핸드폰 번호 가리기 (0) | 2021.08.06 |
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 평균 구하기 (0) | 2021.08.06 |
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 같은 숫자는 싫어 (1) | 2021.08.05 |