[알고리즘] 프로그래머스 - 해시 / 완주하지 못한 선수

선영·2022년 5월 24일
0

알고리즘

목록 보기
3/10

완주하지 못한 선수 문제 링크
풀이참고 링크
나의 문제풀이

⭐️ 문제해결 포인트


배열의 요소를 정렬 뒤 비교하기

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

  const len = participant.length;

  for (let i = 0; i < len; i++) {
    if (participant[i] !== completion[i]) {
      return participant[i];
    }
  }
}

console.log(solution(
  ["mislav", "stanko", "mislav", "ana"],
  ["stanko", "ana", "mislav"],
));

학습한 부분


arr.splice()

배열과 메서드
처음에 풀땐 간단히 배열 메서드를 활용하려고 했어서 splice 메서드를 살펴보게 되었다.

1/ 삭제한 개수만큼 배열의 길이가 더 짧아짐
2/ arr.splice(시작인덱스, 삭제할 개수) 원하는 개수만큼 배열에서 요소를 제거할 수 있다.
3/ arr.splice(시작인덱스, 삭제할 개수, 대체 요소) 원하는 개수만큼 배열에서 요소를 제거하고, 그 자리에 다른 것을 대체할 수 있다.
4/ const removed = arr.splice(시작인덱스, 삭제할 개수) 변수로 선언하면 삭제된 요소로 구성된 배열을 알 수 있다.
5/ const removed = arr.splice(시작인덱스, 0, 대체 요소) 요소를 제거하지 않고 시작인덱스부터 대체요소를 추가할 수 있다.


자기 선언


처음에 문제를 풀땐 배열의 요소를 비교할 생각을 못하고, 배열의 요소를 find나 filter메서드로 조작하려고만 했다.

해당유형이 해시라고 하는데, 이 부분에 대해서 더 공부해보자. 그리고 for문으로 기존의 배열을 건드리지않고 해결할 수 있는 방법을 찾아보자.


✅ 다시 풀기


문제풀이가 기억나서 스무스~하게 해결했다. ✌️

profile
Superduper-India

0개의 댓글