아요 개발 일기

[프로그래머스] Level 1. 나누어 떨어지는 숫자 배열 본문

Algorithms/문제 풀이

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

소진이 2023. 1. 19. 10:28

안녕하세요!

오늘은 나누어 떨어지는 숫자 배열 문제를 풀어보겠습니다!!


 

문제

 

풀이

 

저는 for in 문을 사용해서 arr 값을 하나씩 뽑아줬습니다!

그 후에 i % divisor == 0 일때 ( divisor로 나눴을때 나머지가 0), result에 append (추가) 해줍니다.

마지막으로 나눠지는 값이 없을때,

result가 isEmpty (비었을때) 이면 -1 출력

아니면 result 값을 sorted(정렬)하여 출력해줍니다.

간단하죠???

 

func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
    let array = arr.sorted().filter{ $0 % divisor == 0 }
    return  array == [] ? [-1] : array
}

저의 다섯줄을 한줄로 축약했네요,,

let array = arr.sorted().filter{ $0 % divisor == 0 }

이 부분은 저의 For 문과 동일한 역할을 합니다.

sorted로 정렬해주고, filter 고차함수를 사용해서 $0 % divisor == 0 에 속하는 값만 array에 저장해줍니다.

그 후에 삼항 연산자로 나누어지는 값이 없을때는 -1 아니면 array 값을 출력하도록 합니다.

간략하고 보기 쉽네요!!

 

정확성 테스트

 

내가 푼 풀이
다른 풀이

속도는 제 풀이가 더 빠른데 다른풀이가 쪼금? 아주 미세하게 가벼운 것 같아요!!

고차함수와 For-in If문들을 적절히 잘 사용할때까지! 화이팅!!

 

최근에 어려운 문제를 자꾸 풀어서 이번 문제 너무,, 좋네요,,,