본문 바로가기

Python 연습문제

나누어 떨어지는 숫자 배열

점점 문제가 갈수록 머리가 아픈데, 파이썬이 어떠한 방식으로 생각을 펼쳐 나가야 되는지 훈련이 되고 있는것 같다.

 

 

 

 

def solution(arr,divisor):
    answer=[]                           # 리턴할 값을 빈 리스트로 만들고
    for i in range(0,len(arr)):         # 0 부터 리스트 길이 만큼 순환 시킬꺼야
        if arr[i]%divisor==0:           # 리스트 0번째 값을 divisor으롶 나누어 떨어지면
            answer.append(arr[i])       # 기존 answer 에 그 값을 추가 해줘
        else:
            answer                      # 안나눠 떨어지면 answer 그대로 둘께/answer를 만든 작업
    if len(answer)==0:                  # 근데 위에 추가된게 하나도 없어?
        answer.append(-1)               # 그러면 기존에 주어진 answer=[] 일테니까 -1 을 추가해줘!
    else:                               # 추가된게 1개 라도 있어?
        answer                          # 그러면 answer 그대로 냅둬
    answer.sort()                       # 구한 answer를 오름차순으로 정리하라 했으니까 sort 하자
    return answer                       # 모든 작업이 끝났으면 answer 로 return 해줘!

print(solution([5,9,7,10],5))
print(solution([3,2,6],10))
print(solution([2,36,1,3],1))

'Python 연습문제' 카테고리의 다른 글

제일 작은 수 제거하기-해결 완료  (0) 2024.06.17
음양 더하기  (0) 2024.06.14
서울에서 김서방 찾기  (0) 2024.06.12
두 정수 사이의 합  (1) 2024.06.12
하샤드 수  (0) 2024.06.11