반응형
안녕하세요!
오늘은 나누어 떨어지는 숫자 배열 문제를 풀어보겠습니다!!
문제
풀이
저는 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문들을 적절히 잘 사용할때까지! 화이팅!!
최근에 어려운 문제를 자꾸 풀어서 이번 문제 너무,, 좋네요,,,
반응형
'Algorithms > 문제 풀이' 카테고리의 다른 글
[프로그래머스] Level 1. 제일 작은 수 제거하기 (1) | 2023.01.19 |
---|---|
[프로그래머스] Level 1. 3진법 뒤집기 (0) | 2023.01.17 |
[프로그래머스] Level 1. 두개 뽑아서 더하기 (0) | 2023.01.17 |
[프로그래머스] Level 1. 최소직사각형 (0) | 2023.01.17 |
[프로그래머스] Level 1. 2016 년 (0) | 2023.01.17 |