sodol-dotcom

[Algorithm] 나누어 떨어지는 숫자 배열 본문

Algorithm

[Algorithm] 나누어 떨어지는 숫자 배열

sod0l 2024. 9. 9. 22:39

1. 문제 개요

  • 문제 제목: 나누어 떨어지는 요소 찾기
  • 문제 설명: 주어진 배열의 각 요소 중에서 특정 divisor로 나누어 떨어지는 값을 찾아 오름차순으로 정렬한 배열을 반환한다. 만약 나누어 떨어지는 요소가 없다면 배열에 1을 담아 반환한다.

 

 

2. 문제 해결 전략

  • 단계 1: 배열 arr에서 divisor로 나누어 떨어지는 요소만 필터링한다.
  • 단계 2: 필터링된 결과가 비어 있는지 확인한다. 비어 있다면 배열에 1을 담아 반환한다.
  • 단계 3: 필터링된 배열이 있다면 오름차순으로 정렬하여 반환한다.

 

 

3. 코드 분석

function solution(arr, divisor) {
    // arr에서 divisor로 나누어 떨어지는 요소만 필터링
    var answer = arr.filter(num => num % divisor === 0);

    // 나누어 떨어지는 값이 하나도 없다면 -1을 반환
    if (answer.length === 0) {
        return [-1];
    }

    // 오름차순으로 정렬한 배열 반환
    return answer.sort((a, b) => a - b);
}

3-1) 메소드 및 함수 설명

  • 메소드/함수 이름: filter()
    • 용도: 배열의 요소를 특정 조건에 맞게 필터링한다.
    • 설명: 배열의 각 요소를 검사하여 조건을 만족하는 요소만으로 새로운 배열을 생성한다.
    • 사용 예: arr.filter(num => num % divisor === 0)는 배열 arr에서 divisor로 나누어 떨어지는 요소만을 포함하는 새로운 배열을 반환한다.
  • 메소드/함수 이름: sort()
    • 용도: 배열의 요소를 정렬한다.
    • 설명: 배열의 요소를 지정된 비교 함수에 따라 오름차순 또는 내림차순으로 정렬한다.
    • 사용 예: answer.sort((a, b) => a - b)는 배열 answer를 오름차순으로 정렬한다.

 

3-2) 코드 분석 부분

  • 중요 코드 부분:
    • 설명: 배열 arr에서 divisor로 나누어 떨어지는 요소만을 필터링하여 answer 변수에 저장한다.
    • 장점: filter() 메서드를 사용하여 조건을 만족하는 요소만을 쉽게 추출할 수 있다.
  • var answer = arr.filter(num => num % divisor === 0);
  • 중요 코드 부분:
    • 설명: 필터링된 배열이 비어 있는지 확인하고, 비어 있을 경우 1을 담은 배열을 반환한다.
    • 장점: 조건을 만족하는 요소가 없을 때, 문제 요구사항에 맞게 적절한 값을 반환할 수 있다.
  • if (answer.length === 0) { return [-1]; }
  • 중요 코드 부분:
    • 설명: 필터링된 배열을 오름차순으로 정렬하여 반환한다.
    • 장점: 배열의 요소를 정렬하여 정렬된 결과를 제공할 수 있다. 이로 인해 결과를 쉽게 확인할 수 있다.
  • return answer.sort((a, b) => a - b);

 

 

4. 코드의 역할 및 활용

4-1) 코드의 역할

  • 이 코드는 주어진 배열에서 특정 divisor로 나누어 떨어지는 값을 필터링하여, 그 결과를 오름차순으로 정렬한 배열을 반환한다. 만약 나누어 떨어지는 값이 없다면 1을 반환하여 문제의 요구사항을 충족한다.

 

4-2) 적용 예시

  • 이 코드나 메소드는 데이터 필터링과 정렬이 필요한 다양한 문제에 활용될 수 있다. 예를 들어, 사용자 입력의 유효성을 검사하거나, 특정 기준에 따라 데이터를 정렬해야 하는 상황에서 유용하다. 특히, 주어진 조건에 맞는 데이터만을 추출하고 정렬하는 데 적합하다.

'Algorithm' 카테고리의 다른 글

[Algorithm] 제일 작은 수 제거하기  (0) 2024.09.19
[Algorithm] 없는 숫자 더하기  (0) 2024.09.13
[Algorithm] 음양 더하기  (0) 2024.09.13
[Algorithm] 서울에서 김서방 찾기  (0) 2024.09.10
[Algorithm] 하샤드 수  (0) 2024.08.29