홍준혁

프로그래머스 코딩테스트(2)-완주하지 못한 선수 본문

코딩테스트

프로그래머스 코딩테스트(2)-완주하지 못한 선수

홍준혁 [Hong-JunHyeok] 2021. 1. 8. 23:31
728x90

프로그래머스 해시에 있는 문제이다.

function solution(participant, completion) {
  const completionCount = completion.length;
  for (let index = 0; index < completionCount; index++) {
    if (participant.includes(completion[index])) {
      //참가자가 완주자에 포함 된다면
      participant.splice(participant.indexOf(completion[index]), 1);
    }
  }

  const answer = participant[0];

  return answer;
}

위의 코드는 시간복잡도를 생각하지 않고 짠 코드이다. 

저렇게 코드실행을 해보면 테스트케이스는 다 정답이지만 시간초과가 떠서 문제가 틀렸다고 뜬다.

 

사실 저문제는 해시를 사용해서 푸는 문제이다. 

그래서 해시의 개념을 알아보고 다시 문제를 풀어봐야겠다.

풀이의 흔적...

 

+ 추가 

 

시간 복잡도를 해결한 풀이다.

function solution(participant, completion) {
    participant.sort();
    completion.sort();
    for(var i=0;i<participant.length;i++){
        if(participant[i] !== completion[i]){
            return participant[i];
        }
    }
}

순회를 하다가 처음 맞지 않은 값이 나온 경우, 그 값은 완주하지 못한 선수이다. 

728x90
Comments