Programmers - 해시 > 완주하지 못한 선수

박재현·2021년 6월 18일
0

알고리즘 부수기

목록 보기
3/43
post-thumbnail

내 풀이

해시를 써서 풀려고 했지만 도저히 생각이 나지 않아 sort로 풀었다. 그래서 맞게 푼건지 모르겠다.

사실 sort로 초반에 풀려고 했었는데 런타임 에러가 나 다시 고민했는데 해결이 되었다. 다음부터는 틀린풀이도 같이 적어놓아야겠다. sort로 풀면 로직은 간단하다.

  1. 문자열을 기준으로 participant, completion을 정렬
  2. participant[i], completion[i]를 비교
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;
    }
  }
}

모범답안

해시로 푼 문제를 보려했는데 대부분이 sort로 풀었다. 내 풀이와 너무 똑같았다.

function solution(participant, completion) {
  participant.sort();
  completion.sort();

  for (let i in participant) {
    if (participant[i] !== completion[i]) return participant[i];
  }
}

내 풀이와 차이점

let i = 0; i < participant.length; i++를 쓰지않고 for...in을 사용하였다. 하지만 for in을 사용하게 되면 반복할 때마다 재선언을 하므로 비효율적이다.

얻어갈 부분

for in을 object가 아닌 array도 사용할 수 있다는 점을 알았지만 크게 쓸모있을 것 같진 않다.

profile
공동의 성장을 추구하는 개발자

0개의 댓글