array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
| arr | divisor | return |
| [5, 9, 7, 10] | 5 | [5, 10] |
| [2, 36, 1, 3] | 1 | [1, 2, 3, 36] |
| [3,2,6] | 10 | [-1] |
def solution(arr, divisor):
answer = []
for i in arr:
if i % divisor == 0:
answer.append(i)
return sorted(answer) if answer else [-1]
# arr에 있는 요소만큼 반복
# i가 divisor로 나누어떨어진다면 answer에 넣기
# answer 오름차순으로 정렬해서 리턴 (만약 answer에 요소가 없다면 [-1] 리턴)
def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
| arr1 | arr2 | return |
| [[1, 4], [3, 2], [4, 1]] | [[3, 3], [3, 3]] | [[15, 15], [15, 15], [15, 15]] |
| [[2, 3, 2], [4, 2, 4], [3, 1, 4]] | [[5, 4, 3], [2, 4, 1], [3, 1, 1]] | [[22, 22, 11], [36, 28, 18], [29, 20, 14]] |
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
row = []
for j in range(len(arr2[0])):
total = 0
for k in range(len(arr1[i])):
total += arr1[i][k] * arr2[k][j]
row.append(total)
answer.append(row)
return answer
# arr1의 행을 순회하는 반복문
# 각 행에 대한 결과를 저장할 빈 리스트 row
# arr2의 열을 순회하는 반복문
# 곱셈 결과를 저장할 변수 total
# 행렬 곱셈을 위해 arr1[i]의 각 요소와 arr2의 각 요소를 곱함
# 현재 위치의 요소를 total에 더함, 곱셈 결과인 total을 row 리스트에 추가
# row 리스트를 answer 리스트에 추가
def productMatrix(A, B):
return [[sum(a*b for a, b in zip(A_row,B_col)) for B_col in zip(*B)] for A_row in A]
# zip(*B): B 행렬의 열을 기준으로 행렬을 전치시킴. 즉, B의 각 행이 B의 각 열이 됨
# 바깥쪽 리스트 컴프리헨션: A 행렬의 각 행에 대해 반복
# 안쪽 리스트 컴프리헨션: B 행렬의 각 전치된 열과 A 행렬의 각 행을 요소별로 곱하고 그 값을 더함
# sum(a * b for a, b in zip(A_row, B_col)): 현재 처리 중인 A 행렬의 행과 B 행렬의 전치된 열의 요소별 곱셈의 합을 계산
# 각 항목별 곱셈의 합으로 이루어진 행렬을 반환
| [99클럽 1기] 99일지 DAY 12 - 평균 구하기, 두 개 뽑아서 더하기 (0) | 2024.04.07 |
|---|---|
| [99클럽 1기] 99일지 DAY 11 - 짝수와 홀수, 문자열 내 마음대로 정렬하기 (0) | 2024.04.06 |
| [99클럽 1기] 99일지 DAY 9 - 이상한 문자 만들기, 하샤드 수 (4) | 2024.04.04 |
| [99클럽 1기] 99일지 DAY 8 - 행렬의 덧셈 (0) | 2024.04.03 |
| [99클럽 1기] 99일지 DAY 7 - 음양 더하기, 피보나치 수 (4) | 2024.04.02 |