[프로그래머스] lv0. 약수 구하기, n의 배수 고르기

주연·2023년 2월 8일
0

Python 문제 풀이

목록 보기
20/20
post-thumbnail

약수 구하기

230208

문제

문제 설명
정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

제한사항
1 ≤ n ≤ 10,000

입출력 예

nresult
24[1, 2, 3, 4, 6, 8, 12, 24]
29[1, 29]

풀이

def solution(n):
    return [div+1 for div in range(n) if n % (div+1) == 0]

n의 배수 고르기

230208

문제

문제 설명
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.

제한사항
1 ≤ n ≤ 10,000
1 ≤ numlist의 크기 ≤ 100
1 ≤ numlist의 원소 ≤ 100,000

입출력 예

nnumlistresult
3[4, 5, 6, 7, 8, 9, 10, 11, 12][6, 9, 12]
5[1, 9, 3, 10, 13, 5][10, 5]
12[2, 100, 120, 600, 12, 12][120, 600, 12, 12]

풀이

#오류남
def solution(n, numlist):
    for i in numlist:
        if i % n != 0:
            numlist.remove(i)
    return numlist

처음에 이 문제 접하고 원래 list에서 제거할 생각을 했다.
아무리 용써도 안 돼서 그냥 다음에 풀자하고 넘겼는데
오늘 약수 문제 풀면서 그 전에 풀었던 코드들 살펴보고 다시 복습했다.

def solution(n, numlist):
    return list(filter(lambda x: x % n == 0, numlist))

저번에 했던 고민들이 무색할 정도로 1분도 안 돼서 풀었다.
복습을...꾸준히 하자...

profile
공부 기록

0개의 댓글