[프로그래머스] 나누어 떨어지는 숫자 배열

호떡집사·2023년 4월 20일

프로그래머스

목록 보기
2/2
post-thumbnail

문제

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제한사항

  • arr은 자연수를 담은 배열
  • 정수 i,j에 대해 i ≠ j 이면 arr[i] ≠ arr[j]
  • divisor은 자연수
  • array은 1 이상인 배열

입출력 예

arr divisor return
[5, 9, 7, 10] 5 [5, 10]
[2, 36, 1, 3] 1 [1, 2, 3, 36]
[3,2,6] 10 [-1]

나의 풀이

  1. sort()로 오름차순 정렬
  2. 배열 요소 % divisor === 0인 조건만 filter()
  3. answer의 배열의 길이가 0인 경우 [-1] 를 아니면 answer 리턴
function solution(arr, divisor) {
  const answer = arr.sort((a,b)=>a-b).filter(elem => elem %divisor === 0)

  return answer.length === 0 ? [-1] : answer
}
  • 해당 풀이로 테스트 6번의 경우 26.56ms가 걸렸다.

테스트 6번에 대한 러닝타임 줄이기


function solution(arr, divisor) {
  const answer = arr.filter(elem => elem %divisor === 0)
  
  return answer.length === 0 ? [-1] : answer.sort((a,b)=>a-b)
}
  • 조건에 맞는 값을 return할때만 sort실행

  • 테스트 6번 2.21ms (총 24ms 가량 러닝타임 줄어들었다.)

profile
성장하는 Front-End 개발자를 목표로!(✿◡‿◡)

0개의 댓글