⊙ 코드카타
25) 문제 : array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
| = 배열의 각 요소 중 약수로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성하세요 약수로 나누어 떨어지는 요소가 하나도 없다면 배열에 -1을 담아 반환하세요 |
생각 과정 :
● answer이라는 빈 리스트 만든다
→ for a in range()를 이용해 배열 반복을 만든다
→ arr % divisor ==0 일 때, divisor을 return
→ elif를 이용해 -1을 return하면 되지 않나?
→ 뭐가 문제인 것이지?
def solution(arr, divisor):answer = []for a in arr:if a % divisor == 0:return answerelse :return [-1]return answer
result = solution([5,9,7,10], 5)print(result)result = solution([2, 36, 1, 3], 1)print(result)result = solution([3,2,6], 10)print(result)[]
[]
[-1]
def solution(arr, divisor):answer = []for a in arr:if a % divisor == 0:answer.append(a)
if not answer:return [-1]answer.sort()return answer
result = solution([5,9,7,10], 5)print(result)result = solution([2, 36, 1, 3], 1)print(result)result = solution([3,2,6], 10)print(result) answer.append(a)
#apped(a)는 a변수를 answer 빈바구니에 추가하되 반복문을 끝내지 않음
if not answer:
# 반복문이 끝난 뒤 answer 리스트가 비어있는지 확인하는 조건문return [-1]
# 아무것도 못 담으면 [-1] 반환
answer.sort()
#answer리스트 자체를 정렬[5, 10]
[1, 2, 3, 36]
[-1]
| sort() | sorted() |
| nums = [3, 1, 2] nums.sort() print(nums) |
nums = [3, 1, 2] new_nums = sorted(nums) print(nums) print(new_nums) |
| [1, 2, 3] | [3, 1, 2] [1, 2, 3] |
| 기존 리스트의 재정렬 | 기존 리스트를 놔두고 복사한 리스트를 재정렬 |
'▷ 코드카타' 카테고리의 다른 글
| [내일배움캠프 _ QA/QC 5기] 24일차 _ 코드카타 27문항 (0) | 2026.04.09 |
|---|---|
| [내일배움캠프 _ QA/QC 5기] 23일차 _ 코드카타 26문항 (0) | 2026.04.08 |
| [내일배움캠프 _ QA/QC 5기] 21일차 _ 코드카타 23~24문항 (1) | 2026.04.06 |
| [내일배움캠프 _ QA/QC 5기] 17일차 _ 코드카타 21~22문항 (0) | 2026.03.31 |
| [내일배움캠프 _ QA/QC 5기] 16일차 _ 코드카타 17~20문항 (0) | 2026.03.30 |