문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
var result: [Int] = [] // divisor 로 나누어 떨어질 값을 저장할 배열 만들기
for num in arr {
if num % divisor == 0 {
result.append(num) // 나누어 떨어지는 경우 result배열에 num값을 포함
}
}
result.sort() // 배열 오름차순 정렬
if result.isEmpty { // 결과 배열이 비어있는 경우, -1 을 반환하도록 설정
return [-1]
}
return result
처음 if result.isEmpty 일때 result.append(-1)로 구현 시 값이 잘 나오길래 해당 내용으로 제출했다.
13번 문제에서 시간 초과로 만점을 받지 못했다.
그래서 보다 강력하게 그냥 비어있으면 -1 만 나오도록 return [-1] 로 수정했더니 모든 테스트가 합격이었다.
배열 내 있는 숫자를 빼내어 특정한 값에 반복적으로 나눈 후 특정한 값을 다시 배열에 넣는 방법에 대해 익힐 수 있는 알고리즘 문제였다.
꼭 숙지하자.
'◽️ Programming > ◽️ Algorithm' 카테고리의 다른 글
핸드폰 번호 가리기 (0) | 2024.03.08 |
---|---|
음양 더하기 (0) | 2024.03.07 |
서울에서 김서방 찾기 (0) | 2024.03.05 |
콜라츠 추측 (0) | 2024.03.04 |
두 정수 사이의 합 (0) | 2024.03.03 |