1. 구해야 하는 것
# 두 행렬의 같은 행, 같은 열의 값을 서로 더한 행렬
2. 1을 구하기 위해 필요한 것
# 각각의 행과 열의 길이
# len()
# 각각 더하는 방법
# for문
행의 개수만큼 빈리스트 추가, 0부터 row의 개수까지 각각의 값들을 더해서 위에 만든 리스트에 추가
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
answer.append([])
for j in range(len(arr1[0])):
answer[i].append(arr1[i][j] + arr2[i][j])
return answer
위 코드를 축약한 코드
def solution(arr1, arr2):
return [[arr1[i][j] + arr2[i][j] for j in range(len(arr1[0]))] for i in range(len(arr1))]
zip()을 사용해서 묶은 뒤 더해주는 코드
zip(arr1, arr2) 으로 두 배열을 n번째 행끼리 묶는다.(더해줘야 할 행 단위로 묶임)
(a, b) = (arr1의 n번째 , arr2의 n번째),
(a, b) = (a의 n번째, b의 n번째)
def solution(arr1, arr2):
return [[c + d for c, d in zip(a, b)] for a, b in zip(arr1, arr2)]
'코딩 테스트 연습' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 약수의 개수와 덧셈 (0) | 2023.05.04 |
---|---|
[알고리즘] 프로그래머스 - 내적 (0) | 2023.05.04 |
[알고리즘] 프로그래머스 - 최대공약수와 최소공배수 (0) | 2023.05.04 |
[알고리즘] 프로그래머스 - 둘만의 암호 (0) | 2023.05.03 |
[알고리즘] 프로그래머스 - 최소직사각형 (0) | 2023.05.03 |
댓글