Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SKU Consolidation
- SQL
- eda
- Inventory Optimization
- Product Demand
- tensorflow
- Gaimification
- 신경쓰기의 기술
- 딥러닝
- ProfileReport
- MySQL
- forecast
- 피그마인디언
- leetcode
- pandas profiling
- HackerRank
- ABC Analysis
- 파이썬
- 프로그래머스
- 코딩테스트
- TensorFlowGPU
- 웨어하우스 보관 최적화
- MS SQL Server
- oracle
- 코딩테스트연습
- ModelCheckPoint
- 당신의 인생이 왜 힘들지 않아야 한다고 생각하십니까
- 데이터분석
- Labor Management System
- kaggle
Archives
- Today
- Total
오늘도 배운다
나누어 떨어지는 숫자 배열 / 프로그래머스, 파이썬 코딩테스트 연습 연습문제 본문
문제
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제출답안
def solution(arr, divisor):
ls_sorted = sorted([element for element in arr if element- divisor*(element//divisor) == 0])
answer = ls_sorted if ls_sorted != [] else [-1]
return answer
제출 후 개선답안
1. 나눌 수 있는지 여부는 %를 사용하여 간소화
2. or을 사용해서 리스트가 비었을 때 리턴할 값을 지정할 수 있음 (다른 사람 풀이 참고)
>> 결론 속도가 대체로 줄어든 경향. 다만 테스트 6의 경우 더 늘어났다. 왜일까??
def solution(arr, divisor):
answer = sorted([element for element in arr if element % divisor == 0]) or [-1]
return answer


기존 코드와 달리전진 점이 두 개였다.
전체적으로 시간은 줄었으나 테스트 6의 경우 오히려 시간이 늘어난 결과가 발생
해당원인은 나누어 떨어지는지 여부를 판단하는 코드에서 발생하는 것이아닐까?
element - element * element//divisor != 0 VS element % divisor == 0
그래서 OR을 활용하되 나누어 떨어지는 것은 기존의 코드로 적용해보았다
def solution(arr, divisor):
answer = sorted([element for element in arr if element- divisor*(element//divisor) == 0]) or [-1]
return answer

테스트 6의 경우, 시간이 더 줄어들었다.
하지만 다른 테스트들은 더 많이 걸린다.
만약 트래픽이 많을 경우 2번째 코드로 사용하고
처리할 데이터가 많을 경우 3번째 코드를 사용하면
효율적이지 않을까?
문제 바로가기
728x90
'코딩테스트연습(파이썬)' 카테고리의 다른 글
| 문자열 내 마음대로 정렬하기 / 프로그래머스, 파이썬 코딩테스트 연습 연습문제 (0) | 2022.12.02 |
|---|---|
| 폰켓몬 / 프로그래머스, 파이썬 코딩테스트 연습 해시 (0) | 2022.11.30 |
| K번째수 / 프로그래머스, 파이썬 코딩테스트 연습 정렬 (0) | 2022.11.30 |
| 가운데 글자 가져오기 / 프로그래머스, 파이썬 코딩테스트 연습 연습문제 (0) | 2022.11.30 |
| 없는 숫자 더하기 / 프로그래머스, 파이썬 코딩테스트 연습 월간 코드 챌린지 시즌3 (2) | 2022.11.30 |
Comments