나누어 떨어지는 숫자 배열 - Python

2023. 10. 11. 09:44공부/📝 프로그래머스

1. 풀이 코드

def solution(arr, divisor):
    answer = [item for item in arr if item % divisor == 0]
    return sorted(answer) if len(answer) > 0 else [-1]


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

  위와 같이 풀었습니다.

 

2. 다른 사람의 풀이 코드

def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]

  저는 if()를 통해 값을 리턴했는데, 위의 코드를 보고 찾아보니까 or을 사용하면 if()를 안 쓸 수 있더군요. 앞의 값이 거짓이면 뒤의 값을 반환하는데, 앞의 경우 리스트의 길이가 0이면 거짓이 되니 [-1]이 반환되는 겁니다. 재밌습니다.

 


 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr