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

임정민·2023년 9월 15일
2

알고리즘 문제풀이

목록 보기
98/173
post-thumbnail

프로그래머스 Lv1 문제입니다. 실전에 대비하기 위해 30분 시간제한을 두고 풀었습니다.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12910

[나의 풀이]

⌛ 3분 소요


def solution(arr, divisor):
    answer = []

    for x in arr:
        if x%divisor==0:
            answer.append(x)

    answer.sort()
    if len(answer)==0:
        return [-1]

    return answer

divisor로 나누어 떨어지는 입력된 요소들을 반환하는 문제입니다. 쉽게 해결할 수 있었습니다.
🐱🐱🐱

[다른사람의 풀이1]


def solution(arr, divisor):
    answer = []
    
    for num in arr:
        if num % divisor == 0:
            answer.append(num)
    
    if len(answer) == 0:
        answer.append(-1)
    else:
        answer.sort()
    
    return answer

저와 같은 구조의 풀이입니다. 다른 점이 있다면 입력된 요소들이 전부 나누어 떨어지지 않은 케이스가 발생하였을 때만 sort()하기 때문에 시간을 줄일 수 있는 코드입니다.🐰🐰🐰

[다른사람의 풀이2]


def solution(arr, divisor):
    ans = sorted([a for a in arr if a%divisor == 0])  
    return ans if len(ans)!=0 else [-1]

list comprehension을 활용하여 간략하게 표현한 풀이입니다. 코드 길이 자체는 짧지만 협업하는 측면에서 가독성이 좋지 않을 수 있기 때문에 개인적으로는 선호하지 않는 방식이였습니다.🐧🐧🐧

감사합니다.

profile
https://github.com/min731

1개의 댓글

comment-user-thumbnail
2023년 9월 17일

🐟

답글 달기