- 배열에 있는 숫자들을 dovisor로 나누는 과정에서 중복되는 경우가 없도록 주의해서 알고리즘을 짠다
- 테스트 케이스에서의 시간 초과는 없었지만 만약 더 큰 수와 배열의 크기가 주어진다면 아리스토텔레스의 체를 활용하여 시간을 크게 단축시킬 수 있을 것이다
def solution(arr, divisor):
answer = []
for i, value in enumerate(arr):
if value % divisor == 0: answer.append(arr[i])
if not answer: return[-1]
return sorted(answer)
def solution(arr, divisor): answer = [] -> 정답을 반환할 변수 선언 for i, value in enumerate(arr):
- enumerate 함수
-> 일반적인 출력 for문은 리스트의 원소만을 출력되지만 enumerate()를 사용한 함수에서는 0부터 시작되어 인덱스가 차례대로 출력된다
코드를 입력하세요if value % divisor == 0: answer.append(arr[i]) #나누어 떨어진다면 변수에 저장 if not answer: return[-1] ->answer.append(-1)대신 사용하여 코드를 좀 더 간결하게 표현 return sorted(answer)
원래 풀던 언어인 c로 풀려했지만 풀이 가능한 언어에 c가 있지 않아서 파이썬으로 푼 문제다
파이선에서 처음 사용해보는 함수를 직접 찾아보고 사용하여 그 쓰임새를 조금이나마 알게 되었다는 점에서 유익한 시간이였다