
https://school.programmers.co.kr/learn/courses/30/lessons/12950
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(arr1, arr2):
ans = []
for i in range(len(arr1)):
ans.append([])
for j in range(len(arr1[0])):
ans[i].append(arr1[i][j]+arr2[i][j])
return ans
다른 사람의 풀이를 보니 리스트 컴프리헨션과 zip을 이용하여 간단하게 풀었다.
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a,b)] for a, b in zip(A,B)]
return answer
배열안에 또 배열이 들어 있는 형태이기 때문에 for를 두 번 써야 한다. (A[1] + B[1]와 같은 형태가 아닌 A[0][1] + B[0][1]와 같은 형태이기 때문에)
처음에는 배열안에 있는 배열을 zip과 for를 이용하여 a,b로 풀어준 후, 또 zip(a,b)를 c,d로 풀어주어 c+d를 계산하여 답이 도출되게 하였다.

이런 배열이 있고 각각 -1을 해주어 [[0,1],[2,3]]으로 만들고 싶다고 해 보자.

array[i]가 되어 i는 [1,2] 와 [3,4]가 된다

첫 번째 array[i]의 j는 1,2
두 번째 array[i]의 j는 3,4가 된다
각각의 j에다 -1을 해주면 원하는 결괏값이 나온다.
이렇게 두 번의 과정을 걸쳐 답을 도출해낼 수 있다.
위와 같이 두 개의 배열을 더하거나 빼려면
이 과정에서 zip만 이용하면 간단하게 연산할 수 있는 것이다

이런 식으로.
| [파이썬/python] 프로그래머스 : 가운데 글자 가져오기 (Lv.1) (0) | 2023.03.15 |
|---|---|
| [파이썬/python] 프로그래머스 : 없는 숫자 더하기 (Lv.1) (0) | 2023.03.15 |
| [파이썬/python] 백준 10826번 : 피보나치 수 4 (🥈5) (feat.동적계획법/다이나믹프로그래밍) (0) | 2023.02.12 |
| [파이썬/python] 프로그래머스 : 최솟값 만들기 (Lv.2) (0) | 2023.01.19 |
| [파이썬/python] 프로그래머스 : 올바른 괄호 (Lv.2) (feat. 스택) (0) | 2023.01.19 |