나누어 떨어지는 숫자 배열

2024. 9. 4. 11:05프로그래머스-코딩테스트/Lv.1

 

프로그래머스

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

programmers.co.kr

 

 

문제


array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

 

 

 

 

코드


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

 

 

 

 

노트


for ~ if   VS   if ~ for

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

print(solution([1,2,3,4], 2))
solution([1,3], 2)


# output
{
	"name": "SyntaxError",
	"message": "expected 'else' after 'if' expression (2740757652.py, line 2)",
	"stack": "  Cell In[16], line 2
    answer = sorted(num if num%divisor==0 for num in arr)
                    ^
SyntaxError: expected 'else' after 'if' expression
"
}
  • if문을 for보다 먼저 쓰면 for문에 대해 else경우가 필요하다며 에러가 뜸

 

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

print(solution([1,2,3,4], 2))
solution([1,3], 2)


# output
[2, 4]
[-1]
  • for문을 if보다 먼저 쓰면 for문에 대해 if인 경우만 수행해줌

 

'프로그래머스-코딩테스트 > Lv.1' 카테고리의 다른 글

핸드폰 번호 가리기  (1) 2024.09.04
제일 작은 수 제거하기  (0) 2024.09.04
없는 숫자 더하기  (0) 2024.09.04
음양 더하기  (0) 2024.09.04
콜라츠 추측  (0) 2024.09.04