2022년 10월 09일 일요일
오늘 공부한 내용
1. 프로그래머스 문제풀이
- 중복된 숫자 개수
- 배열의 유사도
1️⃣ map, filter에 대해 다시 살펴보았다.
프로그래머스를 풀다보니 생각나는대로, 편한 메소드를 골라 사용하고 있었다.
예를 들어, 프로그래머스 문제 중 중복된 숫자 개수를 풀 때,
처음에 다음과 같이 코드를 작성 하였다.
function solution(array, n) {
var counter = 0;
array.map((e, i) => e === n && counter++ )
return counter;
}
counter 변수를 선언하고 array를 map으로 돌려서 조건이 만족할때 숫자 counter를 올렸는데 다른 사람들의 풀이를 보니, filter를 사용하는 것이 더 올바른 코드라고 생각되었다.
filter
는 조건을 만족하는 요소를 모아 새로운 배열로 반환map
은 주어진 함수를 호출한 결과를 모아 새로운 배열로 반환
하므로 조건으로 요소를 걸러내야하는 상황인 위 문제는 filter를 사용하는 것이 맞다고 생각한다.
따라서 다시 작성한 코드는 다음과 같다function solution(array, n) { return array.filter((e, i) => e === n ).length }
2️⃣ Array.from()n
이라는 수가 주어졌을 때 1부터 n까지 나열된 배열 만들때,
Array()와 fill()을 사용하여Array(n).fill(0).map((e,i)=> i+1);
과 같이 작성하였는데
Array.from()을 사용한 풀이 보아 정리해보았다.
참고) Array.from()은 유사배열객체(array-like object)나
반복가능한 객체(iterable object)를 얕게 복사해 새로운 Array
객체를 만든다
Array.from({ length: 5 }), (value, index) => i); // [0,1,2,3,4]
Array가 undefined
로 각자리에 초기화 되고, value는 undefined
3️⃣ 두 배열 비교하기
자주 사용한건데 까먹어서 정리함. 합집합, 여집합 등등도 마주치는대로 정리하려고 따로 글 작성
728x90
'TIL' 카테고리의 다른 글
[TIL] day12 - 문제풀이1 (0) | 2022.08.17 |
---|---|
[TIL] day11 - Figma작업, useRoutes를 이용한 router 설정, 문제풀이1 (0) | 2022.08.16 |
[TIL] day10 - 모듈 소개, redux-persist 적용, serialize, 문제풀이1 (0) | 2022.08.10 |
[TIL] day09 - JS 모듈 소개, Redux Toolkit (0) | 2022.08.06 |
[TIL] day07 - Redux Toolkit, dotenv 환경변수, Optimistic UI (0) | 2022.08.02 |