Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 |
Tags
- 오픈그래프
- ContextAPI
- JavaScript
- 리액트쿼리
- 메타태그
- customHook
- 3-21
- CSS
- open gragh
- ReactQuery
- 옵셔널 체이닝
- GIT
- 리눅스 명령어
- 커스텀훅
- 동적메타태그생성
- 실수
- 변수선언
Archives
- Today
- Total
나를 위한 기록
코딩테스트 연습 - 나누어 떨어지는 숫자 배열 반환 본문
오늘 푼 문제 설명.
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해 주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한사항
arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr [i] ≠ arr [j]입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다.
1. 먼저, 문제를 이해하기 위해 주어진 배열을 순회하며 특정 수로 나누어 떨어지는지 여부를 판별하는 필터링 과정을 생각했다.
2. 그래서 filter함수를 사용하여 주어진 배열에서 조건에 맞는 요소들을 골라내었다. 그리고 이를 임시배열 filteted에 저장했다.
3. 다음으로, 나누어 떨어지는 수가 하나도 없는 경우를 처리하기 위해 임시 배열 'filtered'의 길이를 확인했다.
길이가 0이면 나누어 떨어지는 수가 없다는 뜻이므로, -1을 filtered에 추가하고 해당 배열을 반환했다.
4. 만약 나누어 떨어지는 수가 있다면, sort함수를 사용하여 배열을 오름차순으로 정렬했다. 이후 정렬된 배열을 반환하여 문제를 해결했다.
function solution(arr, divisor) {
const filtered = arr.filter(e => e % divisor === 0 );
if(filtered.length === 0 ){
filtered.push(-1);
return filtered
}
return filtered.sort((a, b) => a - b);
}
다른 사람들의 풀이를 보면 더 짧고 간결하게 쓰신 분들도 있지만 나는 이만큼 한 것으로도 만족...
'Today I Learned' 카테고리의 다른 글
| 뉴스피드 프로젝트 KPT 회고 (1) | 2023.11.27 |
|---|---|
| React 이벤트 버블링 문제 (1) | 2023.11.23 |
| styled-components 동적 생성과 자동 포커스 이슈 해결 (1) | 2023.11.20 |
| [november 17] React-Router-DOM (0) | 2023.11.17 |
| 배치 업데이트 - 팬레터 수정 기능 구현 중 궁금했던 부분 (0) | 2023.11.16 |