1. 문제에 대한 이해
- 우리가 풀어야 할 문제는 무엇인가?
- 주어진 배열에서 중복된 요소가 있는지 확인하라 - 주어진 자료는 무엇인가?
- 문자열이 담긴 배열
2. 계획
- 이 문제를 푸는데 있어서 유용하게 쓸 수 있는 지식은 무엇인가?
- Map
- Map을 하나 만들어두고 주어진 배열을 set을 사용해서 맵으로 만드는데 그 과정에서 get을 사용해서 해당 요소가 맵에 있다면 +1을 해주고 그렇지 않다면 0에서 +1을 한다.
- 키값만 구해서 길이를 구한다.
- 주어진 배열의 길이와 다르면 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);
});
'코테연습' 카테고리의 다른 글
96. 이것이 코딩 테스트다 4장 : 왕실의 나이트 Javascript (0) | 2022.08.30 |
---|---|
94. 이것이 코딩 테스트다 4장 : 상하좌우 Javascript (0) | 2022.08.30 |
92. 배열에서 각 요소 개수 세기 Javascript (0) | 2022.08.24 |
91. [1차] 뉴스 클러스터링 Javascript (0) | 2022.08.23 |
90. 후보키 Javascript (0) | 2022.08.23 |
댓글