Le1. 완주하지 못한 선수
문제 programmers.co.kr/learn/courses/30/lessons/42576?language=javascript
function solution(participant, completion) {
const total = participant.length;
var answer = '';
participant.sort();
completion.sort();
for(let i=0; i<total; i++) {
if(participant[i] !== completion[i]) {
answer = participant[i];
return answer;
}
}
}
풀이
- 참여한 선수의 수는 1명 이상 100,000명 이하 -> 시간 복잡도 고려하기!
- 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주 -> 한 명만 골라내면 됨
- sort() 함수를 이용해 두 array를 정렬한 뒤, 순서대로 비교
- 순서가 일치하지 않을 경우, 해당 participant가 completion 명단에 없다는 의미이므로 해당 participant를 return
- 형변환하여 비교하지 않도록 !== 연산자 사용
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[JS] 두 개 뽑아서 더하기 (0) | 2021.03.22 |
---|---|
[ORACLE] SQL > JOIN : 우유와 요거트가 담긴 장바구니 (SELF JOIN) (0) | 2021.02.19 |
[ORACLE] SQL > String, Date : DATETIME에서 DATE로 형 변환 (TO_CHAR) (0) | 2021.02.19 |
[ORACLE] SQL > String, Date : 오랜 기간 보호한 동물 (2) (0) | 2021.02.19 |
[ORACLE] SQL > String, Date : 중성화 여부 파악하기 (CASE) (0) | 2021.02.19 |