프로그래머스 | 완주하지 못한 선수_JS
난이도 : Level. 1
언어 : Javascript
출제 내역 : 해시
❓ Question
마라톤 경기에서 마지막까지 완주하지 못한 1인을 찾아보자
📝 My Solution
전체 풀이 코드 👈🏻 클릭시 Github로 이동
function solution(participant, completion) {
var answer = '';
for (let i = 0; i<participant.length; i++) {
if (participant.indexOf(completion[i]) >= 0) {
participant[participant.indexOf(completion[i])] = ''
}
}
answer = participant.join('')
return answer;
}
참가자 명단 배열과 완주자 명단 배열을 가지고 반복문을 만들었습니다.
완주자 명단에 없는 이름 하나가 참가자 명단에 있었기에
참가자 명단에서 완주자 명단을 찾아 있다면 '' 로 변환해 주었습니다.
그렇게 마지막까지 돌게 되면 하나의 이름만 남기에 join
함수를 이용해 합쳐주고
그 값을 answer에 담아 테스트는 통과를 했습니다.
그러나 효율성 테스트에서는 전체 실패라는 기염(?)을 토합니다...;
아마 반복문에서 인덱스 값을 활용해서 값을 찾아내다보니
계속해서 같은 작업을 반복해야하기에 효율성이 떨어지는 것 같습니다.
function solution(participant, completion) {
var answer = '';
participant.sort();
completion.sort();
for (let i = 0; i<participant.length; i++) {
if (participant[i] !== completion[i]) {
answer = participant[i]
break;
}
}
return answer;
}
그래서 한번만 반복 할 수 있도록, 미리 두 배열을 sort()
로 정렬하고,
같은 인덱스끼리 비교해 같지 않은 값이 나올 경우에
해당 값을 answer에 넣어주고 반복문을 종료했습니다.
결과
효율적인 부분도 고려를 해야했던 문제라서
조금 더 시간이 걸렸던 것 같습니다
Author And Source
이 문제에 관하여(프로그래머스 | 완주하지 못한 선수_JS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sstaar91/Algorithm-Programmers-marathon-fzrel8ya저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)