코딩 테스트 연습
[알고리즘] 프로그래머스 - 행렬의 덧셈
코드뭉치
2023. 5. 4. 17:24
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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)]