오늘은 기초부터 다지기 위해 간단한 수학 연산 문제를 풀었습니다!
https://programmers.co.kr/learn/courses/30/lessons/12910
코딩테스트 연습 - 나누어 떨어지는 숫자 배열
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하
programmers.co.kr
첫 시도는 생각 나는대로 코드를 작성하다보니 길게 작성했는데,
def solution(arr, divisor):
answer = []
for v in arr:
if v % divisor != 0:
continue
answer.append(v)
if len(answer) == 0:
answer.append(-1)
else:
answer.sort()
return answer
이를 좀 더 줄이면 3줄만에 작성이 가능합니다!
삼항 연산자와 for문을 배열 안에서 작성하는 식으로 줄일 수 있습니다.
def solution(arr, divisor):
answer = [v for v in arr if v % divisor == 0]
answer.append(-1) if len(answer) == 0 else answer.sort()
return answer
'알고리즘' 카테고리의 다른 글
[백준] 2583번 - 영역 구하기 (DFS / BFS) (0) | 2022.02.16 |
---|---|
[Python] 리스트의 모든 최댓값의 인덱스 구하기 (0) | 2022.02.01 |
[Python] itertools 주요 클래스 (permutations, combinations ... ) (0) | 2022.01.15 |
[프로그래머스] 2020 KAKAO 인턴십 (Lv1) : 키패드 누르기 (0) | 2022.01.12 |
[Python] bisect_left, bisect_right (0) | 2022.01.11 |