1 분 소요

1. 문제

[level 1] 나누어 떨어지는 숫자 배열 - 12910

문제 링크

성능 요약

메모리: 10 MB, 시간: 0.05 ms

구분

코딩테스트 연습 > 연습문제

채점결과


정확성: 100.0
합계: 100.0 / 100.0

문제 설명

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
arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.

입출력 예#2
arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.

입출력 예#3
3, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

2. 해결방법 시간복잡도

  1. 단순 코딩 O(N)

3. 문제 해결 및 코드


  • 주석을 참고하면서 이해를 돕습니다.

4. 알고리즘 및 해설

  1. 자연수를 담은 배열 arr을 반복문을 통해 하나씩 확인한다.
  2. if문을 통해 만약 반복문의 현재 위치값이 divisor로 나누어질 경우 해당 i값을 리스트에 삽입한다.
  3. 반복문이 끝난 이후 나누어진 값이 없는 경우 (반복문 이후 result 리스트의 길이가 0인 경우)에는 [-1]를 출력해준다.
  4. 아니라면 정렬된 결과 리스트를 출력한다.