티스토리 뷰
주어진 배열에서 숫자의 중복횟수를 배열로 반환하는 문제
내 풀이 설명
1. spread연산자로 복사한 뒤 sort를 이용해 매개변수로 주어진 배열의 숫자를 순서대로 배치한다.
2. 반복문으로 배열요소의 앞 뒤가 같으면 카운트를 센다.
3. 배열요소의 앞뒤가 다르고 count가 1보다 크면(중복횟수가 1보다 큼) answer배열에 count를 넣은 뒤 count를 초기화 한다.
그럼 정답이 (3) [3, 2, 3]가 나온다.
정답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 분석
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
https://www.boostcourse.org/selfcheck/joinLectures/360465
'개발' 카테고리의 다른 글
로컬 pc를 외부에 공유하는 방법 - localtunnel(무료) (0) | 2022.08.05 |
---|---|
Object.assign()할 때 JSON.parse()로 깊은 복사하기 (0) | 2022.08.04 |
html 메타태그를 알아보자 (0) | 2022.04.20 |
빅오표기법 (Big-O notation), 보이는 학생 (0) | 2022.03.01 |
javascript : promise (0) | 2022.02.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 꿀팁
- 에어로치노
- 광명이케아
- 비즈니스
- 마케팅
- 소품샵
- 복지로
- 경기광고홍보제
- 인포그래픽
- 우유거품기
- 간접조명
- 마음건강사업
- 넷플릭스
- 홈카페
- 침대조명
- 퍼블리싱
- webdesign
- 디자인
- 네스프레소
- 구매후기
- 성격강점검사
- 심리상담
- 서울시
- 테이블조명
- XD
- 청년마음건강
- 리뷰
- 서울여행
- 프로토타입
- 커피
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함