관리 메뉴

Jerry

[Programmers] 완주하지 못한 선수 (JavaScript) 본문

Problem Solving/Algorithm 문제 풀기

[Programmers] 완주하지 못한 선수 (JavaScript)

juicyjerry 2020. 12. 20. 01:22
반응형

오늘 프로그래머스에서 푼 문제는 "코딩 테스트 연습 -> 해시"로 들어가 푼 문제다.

 

참가자 그룹 배열이 있고, 참가자 중 완주한 그룹 배열이 있다. (문제는 여기!!)

그 중, 한 명은 완주를 못 한 사람이 발생하는데 이를 구하는 문제라고 해석했다.

 

 

수도 코드

 

p = 참가자
cp = 완주한 참가자
cp.length === p.length - 1

바깥 for문
	cnt = 0;
안쪽 for문
	if (만약 Cp가 p와 같고, cnt 가 0일 때) {
    	cnt++
        참가자를 삭제한다
    }
    
결국, 남는 참가자는 1명
return p[0];

 

 

소스 코드

function solution(participant, completion) {
    let answer = '';
    
    for (let j = 0; j < completion.length; j++) {
        let cnt = 0;
        for (let i = 0; i < participant.length; i++) {
            if (participant[i] === completion[j] && cnt === 0) {
                cnt++;
                participant.splice(i, 1);
            }
        } 
    }
    answer = participant[0];    
    return answer;
}

 

채점을 돌려봤다.

프로그래머스를 처음 써보긴 했는데 테스트 항목이 나눠져 있는 것을 보고 살짝 당황했다. (사실은 효율성 항목이 다 빨간불이라 당황쓰..)

 

 

나의 테스트 결과

 

 

그래서, 이에 대해 찾아보니

코딩 테스트의 경우 [정확성]과 [효율성]으로 구분해서 점수를 계산합니다.
[정확성] 테스트는 지원자가 제출한 코드가 문제 지문을 충분히 구현하고 있는지를 평가하며, [효율성] 테스트는 코드의 시간 복잡도(코드가 문제를 해결하는데 걸린 시간이 충분히 빠른지)를 테스트합니다.

라고 한다.

 

 

"아.. 난 시간 복잡도 측면에서 부족했구나"라고 셀프 피드백을 받을 수 있었다. 

 

 

 

내일 다시 다시 풀어보고 보충해보겠다.

 

 

 

출처: 프로그래머스 코딩 테스트 연습, 

programmers.co.kr/learn/courses/30/lessons/42576?language=javascript

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

반응형