본문 바로가기
코테연습

93. 배열에 중복된 요소가 있는지 확인하기 Javascript

by hxunz 2022. 8. 25.

1. 문제에 대한 이해

  • 우리가 풀어야 할 문제는 무엇인가?
     - 주어진 배열에서 중복된 요소가 있는지 확인하라
  • 주어진 자료는 무엇인가?
     - 문자열이 담긴 배열

2. 계획

  • 이 문제를 푸는데 있어서 유용하게 쓸 수 있는 지식은 무엇인가?
     - Map
  1. Map을 하나 만들어두고 주어진 배열을 set을 사용해서 맵으로 만드는데 그 과정에서 get을 사용해서 해당 요소가 맵에 있다면 +1을 해주고 그렇지 않다면 0에서 +1을 한다.
  2. 키값만 구해서 길이를 구한다.
  3. 주어진 배열의 길이와 다르면 false를 리턴하고 길이가 같다면 true 리턴한다.

3. 실행

  • 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
const solution = (strArr) => {
  let mapStr = new Map();
  for (i = 0; i < strArr.length; i++) {
    mapStr.set(strArr[i], (mapStr.get(strArr[i]) || 0) + 1);
  }

  const mapStrLength = [...mapStr.keys()].length;
  
  return strArr.length === mapStrLength ? true : false;
}

test('check', () => {
  expect(solution(['a', 'b', 'c', 'd', 'a', 'c', 'b', 'e', 'f', 'e', 'c', 'd'])).toEqual(false);
  expect(solution(['a', 'b', 'c', 'd'])).toEqual(true);
});

 

댓글