티스토리 뷰

문제

주어진 배열에서 숫자의 중복횟수를 배열로 반환하는 문제

내 풀이

내 풀이 설명

1. spread연산자로 복사한 뒤 sort를 이용해 매개변수로 주어진 배열의 숫자를 순서대로 배치한다. 

2. 반복문으로 배열요소의 앞 뒤가 같으면 카운트를 센다.

3. 배열요소의 앞뒤가 다르고 count가 1보다 크면(중복횟수가 1보다 큼)  answer배열에 count를 넣은 뒤 count를 초기화 한다. 

 

그럼 정답이 (3) [3, 2, 3]가 나온다. 

 


 

제시된 정답 1

정답1 분석

내 풀이와 다르게 Map, Set을 사용했다. 

정답 2와 다른 점은 countOf 함수와 solution 함수를 나누어서 해결했다는 점이다. 한 함수는 한가지 역할만 하라는 클린코드 원칙에 맞게 풀이 되어서 내 코드에도 참고해야겠다는 생각이 들었다.  

특히 이 1번 풀이는 set의 중복을 허용하지 않는 특성을 이용하여 중복값을 선별했다. 

셋(Set)은 중복을 허용하지 않는 값을 모아놓은 특별한 컬렉션입니다.
셋에 키가 없는 값이 저장됩니다.

new Set(iterable) – 셋을 만듭니다. 이터러블 객체를 전달받으면(대개 배열을 전달받음) 그 안의 값을 복사해 셋에 넣어줍니다.
set.add(value) – 값을 추가하고 셋 자신을 반환합니다.
set.delete(value) – 값을 제거합니다. 호출 시점에 셋 내에 값이 있어서 제거에 성공하면 true, 아니면 false를 반환합니다.
set.has(value) – 셋 내에 값이 존재하면 true, 아니면 false를 반환합니다.
set.clear() – 셋을 비웁니다.
set.size – 셋에 몇 개의 값이 있는지 세줍니다.

 

 

정답 2

정답2 분석

map의 key,value 값을 이용하여 중복값 더해주는 방식으로 구해줌

 

Map 설명
new Map() – 맵을 만듭니다.
map.set(key, value) – key를 이용해 value를 저장합니다.
map.get(key) – key에 해당하는 값을 반환합니다. key가 존재하지 않으면 undefined를 반환합니다.
map.has(key) – key가 존재하면 true, 존재하지 않으면 false를 반환합니다.
map.delete(key) – key에 해당하는 값을 삭제합니다.
map.clear() – 맵 안의 모든 요소를 제거합니다.
map.size – 요소의 개수를 반환합니다.


Map은 객체와 달리 key값의 형태에 제한이 없다.
객체도 key가 될 수 있다. 

 

 

-

참조

https://ko.javascript.info/map-set 

 

맵과 셋

 

ko.javascript.info

https://www.boostcourse.org/selfcheck/joinLectures/360465

 

부스트캠프 웹·모바일 자가진단

부스트코스 무료 강의

www.boostcourse.org

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함