728x90
1차 시도
실행결과 시간 초과로 효율성 테스트를 모두 실패하였다 ㅠㅠ
.length 와 같은 코드를 변수로 따로 빼고 속도 줄이기 시도!
/**
* @description 완주하지 못한 선수의 이름을 조회하는 함수
* @params participant : 마라톤에 참여한 선수들
* @params completion : 마라톤을 완주한 선수들
* @return answer : 완주하지 못한 선수의 이름
*/
function solution(participant, completion) {
let answer = '';
let partList = participant; //미완주 선수만 남겨둘 변수 선언
//완주한 선수의 이름을 참여선수 목록 partList에서 제외합니다.
for(let i=0; i<completion.length; i++) {
let completeMan = partList.find(p => p==completion[i]);
let idx = partList.indexOf(completeMan);
if(idx!=-1) {
partList.splice(idx,1); //완주 선수 제거
}
}
//미완주 선수 목록을 모두 출력합니다.
answer = partList.join(',');
return answer;
}
2차 시도
for문으로 계속 구하고 있던 .length와 같은 코드를 지역변수로 빼니 시간이 조금 줄어들었다
그래도 효율성 테스트 실패 ㅠㅠ async로 3차시도!는 내일 퇴근하고 해야겠다
/**
* @description 완주하지 못한 선수의 이름을 조회하는 함수
* @params participant : 마라톤에 참여한 선수들
* @params completion : 마라톤을 완주한 선수들
* @return answer : 완주하지 못한 선수의 이름
*/
function solution(participant, completion) {
let answer = '';
let len = completion.length;
let partList = participant; //미완주 선수만 남겨둘 변수 선언
let completeMan = '';
let idx = -1;
for(let i=0; i<len; i++) {
completeMan = partList.find(p => p==completion[i]);
idx = partList.indexOf(completeMan);
if(idx!=-1) {
partList.splice(idx,1); //완주 선수 제거
}
}
//미완주 선수 목록을 모두 출력합니다.
answer = partList.join(',');
return answer;
}
3차 시도
문제를 천천히 읽어보니 completion 의 길이는 participant 의 길이에서 1이 부족하다는 사실이 핵심이었다. 그럼 무조건 한명이 안온것이니 for문을 한번만 돌리고 발견하자마자 완주하지 못한 선수를 리턴해주면 되는 것이다.
/**
* @description 완주하지 못한 선수의 이름을 조회하는 함수
* @params participant : 마라톤에 참여한 선수들
* @params completion : 마라톤을 완주한 선수들
* @return answer : 완주하지 못한 선수의 이름
*/
function solution(participant, completion) {
let answer = '';
participant.sort();
completion.sort();
for(let i=0; i<participant.length; i++) {
if(participant[i]!==completion[i]) {
answer = participant[i];
break;
}
}
return answer;
}
이제 끝~
728x90
'Study Note > Algorithm' 카테고리의 다른 글
프로그래머스 #정렬 - K번째수 lv1 (0) | 2021.01.20 |
---|---|
프로그래머스 #해시 - 베스트앨범 lv3 (0) | 2021.01.16 |
프로그래머스 #스택/큐 - 기능개발 lv2 (0) | 2021.01.16 |
프로그래머스 #해시 - 위장 lv2 (0) | 2021.01.10 |
Algorithm #순열 알고리즘 (0) | 2019.08.19 |
댓글