본문 바로가기
*Algorithm/Programmers_Level1

[programmers] 프로그래머스 Level1 나누어 떨어지는 숫자 배열(파이썬 Python)

by codinguser 2020. 8. 29.

프로그래머스
(주)그렙

[programmers] 프로그래머스 Level1 나누어 떨어지는 숫자 배열

(파이썬 Python)

* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제
* 소스 코드 및 정리한 내용의 저작권은 글쓴이에게 있습니다.

 

 

 

 

프로그래머스 Level1 나누어 떨어지는 숫자 배열


1) 문제

 

프로그래머스 나누어 떨어지는 숫자 배열

 

코딩테스트 연습 - 나누어 떨어지는 숫자 배열

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하�

programmers.co.kr


2) 풀이 과정

 

1. 배열의 크기만큼 반복 실행 한다.

Why? 배열의 인덱스를 이용하여 활용하기 위해서.

 

2. 배열의 요소들 중, divisor로 나누었을 때 떨어지는 요소를 배열에 추가한다.

 

3. 배열의 크기가 0일 때 -1을 배열에 추가한다.

Why? 배열의 크기가 0인 이유는, arr배열의 element중 divisor로 떨어지지 않게 되면 위의 로직 for문~answer.append(arr[i])에서 배열에 element가 추가가 되지 않기에 배열의 크기는 0이 된다.

 

4. 이 후, 정렬을 하면 된다.

Plus) 맨 위에서 미리 정렬을 해줘도 된다.


3) 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(arr, divisor):
    answer = []
    
    for i in range(len(arr)):
        if(arr[i] % divisor==0):
            answer.append(arr[i])
        
    if(len(answer)==0):
        answer.append(-1)
        
    answer.sort()
            
    return answer
cs

4) 정리 노트

 

1. append()란?

: 배열에다 값을 추가 할 때 사용한다.

 

1
2
answer = []
answer.append(1# 출력 : answer=[1]
cs

 

 

2. sort()와 sorted()차이?

 

(1). <list>.sort()

: 원본 리스트 순서 변화, 반환값 없음

 

1
2
3
4
list = [3,2,4,5]
 
list.sort()
print(list) # 출력 : [2, 3, 4, 5]
cs

(2). sorted(<list>)

: 원본 리스트 순서 변화X, 정렬된 새로운 리스트 반환

 

1
2
3
4
list = [3,2,4,5]
 
sorted(list) # 출력 : [2, 3, 4, 5]
print(list) # 출력 : [3, 2, 4, 5]
cs

 

댓글