프로그래머스 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을 활용하여 간략하게 표현한 풀이입니다. 코드 길이 자체는 짧지만 협업하는 측면에서 가독성이 좋지 않을 수 있기 때문에 개인적으로는 선호하지 않는 방식이였습니다.🐧🐧🐧
감사합니다.
🐟